1 // Copyright (c) 2015-2019 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 <initializer_list>
43 #include <string>
44 #include <system_error>
45 #include <tuple>
46 #include <type_traits>
47 #include <vulkan/vulkan.h>
48 
49 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
50 # include <memory>
51 # include <vector>
52 #endif
53 
54 #if !defined(VULKAN_HPP_ASSERT)
55 # include <cassert>
56 # define VULKAN_HPP_ASSERT   assert
57 #endif
58 
59 static_assert( VK_HEADER_VERSION ==  121 , "Wrong VK_HEADER_VERSION!" );
60 
61 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
62 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
63 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
64 # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
65 #  define VULKAN_HPP_TYPESAFE_CONVERSION
66 # endif
67 #endif
68 
69 // <tuple> includes <sys/sysmacros.h> through some other header
70 // this results in major(x) being resolved to gnu_dev_major(x)
71 // which is an expression in a constructor initializer list.
72 #if defined(major)
73   #undef major
74 #endif
75 #if defined(minor)
76   #undef minor
77 #endif
78 
79 // Windows defines MemoryBarrier which is deprecated and collides
80 // with the vk::MemoryBarrier struct.
81 #if defined(MemoryBarrier)
82   #undef MemoryBarrier
83 #endif
84 
85 #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
86 # if defined(__clang__)
87 #  if __has_feature(cxx_unrestricted_unions)
88 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
89 #  endif
90 # elif defined(__GNUC__)
91 #  define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
92 #  if 40600 <= GCC_VERSION
93 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
94 #  endif
95 # elif defined(_MSC_VER)
96 #  if 1900 <= _MSC_VER
97 #   define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
98 #  endif
99 # endif
100 #endif
101 
102 #if !defined(VULKAN_HPP_INLINE)
103 # if defined(__clang__)
104 #  if __has_attribute(always_inline)
105 #   define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
106 #  else
107 #    define VULKAN_HPP_INLINE inline
108 #  endif
109 # elif defined(__GNUC__)
110 #  define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
111 # elif defined(_MSC_VER)
112 #  define VULKAN_HPP_INLINE inline
113 # else
114 #  define VULKAN_HPP_INLINE inline
115 # endif
116 #endif
117 
118 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
119 # define VULKAN_HPP_TYPESAFE_EXPLICIT
120 #else
121 # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
122 #endif
123 
124 #if defined(_MSC_VER) && (_MSC_VER <= 1800)
125 # define VULKAN_HPP_CONSTEXPR
126 # define VULKAN_HPP_CONST_OR_CONSTEXPR  const
127 #else
128 # define VULKAN_HPP_CONSTEXPR constexpr
129 # define VULKAN_HPP_CONST_OR_CONSTEXPR  constexpr
130 #endif
131 
132 #if !defined(VULKAN_HPP_NAMESPACE)
133 #define VULKAN_HPP_NAMESPACE vk
134 #endif
135 
136 #define VULKAN_HPP_STRINGIFY2(text) #text
137 #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
138 #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
139 
140 namespace VULKAN_HPP_NAMESPACE
141 {
142 #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
143   template <typename T>
144   class ArrayProxy
145   {
146   public:
ArrayProxy(std::nullptr_t)147     VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t)
148       : m_count(0)
149       , m_ptr(nullptr)
150     {}
151 
ArrayProxy(T & ptr)152     ArrayProxy(T & ptr)
153       : m_count(1)
154       , m_ptr(&ptr)
155     {}
156 
ArrayProxy(uint32_t count,T * ptr)157     ArrayProxy(uint32_t count, T * ptr)
158       : m_count(count)
159       , m_ptr(ptr)
160     {}
161 
162     template <size_t N>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> & data)163     ArrayProxy(std::array<typename std::remove_const<T>::type, N> & data)
164       : m_count(N)
165       , m_ptr(data.data())
166     {}
167 
168     template <size_t N>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> const & data)169     ArrayProxy(std::array<typename std::remove_const<T>::type, N> const& data)
170       : m_count(N)
171       , m_ptr(data.data())
172     {}
173 
174     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)175     ArrayProxy(std::vector<typename std::remove_const<T>::type, Allocator> & data)
176       : m_count(static_cast<uint32_t>(data.size()))
177       , m_ptr(data.data())
178     {}
179 
180     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> const & data)181     ArrayProxy(std::vector<typename std::remove_const<T>::type, Allocator> const& data)
182       : m_count(static_cast<uint32_t>(data.size()))
183       , m_ptr(data.data())
184     {}
185 
ArrayProxy(std::initializer_list<T> const & data)186     ArrayProxy(std::initializer_list<T> const& data)
187       : m_count(static_cast<uint32_t>(data.end() - data.begin()))
188       , m_ptr(data.begin())
189     {}
190 
begin() const191     const T * begin() const
192     {
193       return m_ptr;
194     }
195 
end() const196     const T * end() const
197     {
198       return m_ptr + m_count;
199     }
200 
front() const201     const T & front() const
202     {
203       VULKAN_HPP_ASSERT(m_count && m_ptr);
204       return *m_ptr;
205     }
206 
back() const207     const T & back() const
208     {
209       VULKAN_HPP_ASSERT(m_count && m_ptr);
210       return *(m_ptr + m_count - 1);
211     }
212 
empty() const213     bool empty() const
214     {
215       return (m_count == 0);
216     }
217 
size() const218     uint32_t size() const
219     {
220       return m_count;
221     }
222 
data() const223     T * data() const
224     {
225       return m_ptr;
226     }
227 
228   private:
229     uint32_t  m_count;
230     T *       m_ptr;
231   };
232 #endif
233 
234   template <typename FlagBitsType> struct FlagTraits
235   {
236     enum { allFlags = 0 };
237   };
238 
239   template <typename BitType, typename MaskType = VkFlags>
240   class Flags
241   {
242   public:
Flags()243     VULKAN_HPP_CONSTEXPR Flags()
244       : m_mask(0)
245     {
246     }
247 
Flags(BitType bit)248     Flags(BitType bit)
249       : m_mask(static_cast<MaskType>(bit))
250     {
251     }
252 
Flags(Flags<BitType> const & rhs)253     Flags(Flags<BitType> const& rhs)
254       : m_mask(rhs.m_mask)
255     {
256     }
257 
Flags(MaskType flags)258     explicit Flags(MaskType flags)
259       : m_mask(flags)
260     {
261     }
262 
operator =(Flags<BitType> const & rhs)263     Flags<BitType> & operator=(Flags<BitType> const& rhs)
264     {
265       m_mask = rhs.m_mask;
266       return *this;
267     }
268 
operator |=(Flags<BitType> const & rhs)269     Flags<BitType> & operator|=(Flags<BitType> const& rhs)
270     {
271       m_mask |= rhs.m_mask;
272       return *this;
273     }
274 
operator &=(Flags<BitType> const & rhs)275     Flags<BitType> & operator&=(Flags<BitType> const& rhs)
276     {
277       m_mask &= rhs.m_mask;
278       return *this;
279     }
280 
operator ^=(Flags<BitType> const & rhs)281     Flags<BitType> & operator^=(Flags<BitType> const& rhs)
282     {
283       m_mask ^= rhs.m_mask;
284       return *this;
285     }
286 
operator |(Flags<BitType> const & rhs) const287     Flags<BitType> operator|(Flags<BitType> const& rhs) const
288     {
289       Flags<BitType> result(*this);
290       result |= rhs;
291       return result;
292     }
293 
operator &(Flags<BitType> const & rhs) const294     Flags<BitType> operator&(Flags<BitType> const& rhs) const
295     {
296       Flags<BitType> result(*this);
297       result &= rhs;
298       return result;
299     }
300 
operator ^(Flags<BitType> const & rhs) const301     Flags<BitType> operator^(Flags<BitType> const& rhs) const
302     {
303       Flags<BitType> result(*this);
304       result ^= rhs;
305       return result;
306     }
307 
operator !() const308     bool operator!() const
309     {
310       return !m_mask;
311     }
312 
operator ~() const313     Flags<BitType> operator~() const
314     {
315       Flags<BitType> result(*this);
316       result.m_mask ^= FlagTraits<BitType>::allFlags;
317       return result;
318     }
319 
operator ==(Flags<BitType> const & rhs) const320     bool operator==(Flags<BitType> const& rhs) const
321     {
322       return m_mask == rhs.m_mask;
323     }
324 
operator !=(Flags<BitType> const & rhs) const325     bool operator!=(Flags<BitType> const& rhs) const
326     {
327       return m_mask != rhs.m_mask;
328     }
329 
operator bool() const330     explicit operator bool() const
331     {
332       return !!m_mask;
333     }
334 
operator MaskType() const335     explicit operator MaskType() const
336     {
337         return m_mask;
338     }
339 
340   private:
341     MaskType  m_mask;
342   };
343 
344   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)345   Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags)
346   {
347     return flags | bit;
348   }
349 
350   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)351   Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags)
352   {
353     return flags & bit;
354   }
355 
356   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)357   Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags)
358   {
359     return flags ^ bit;
360   }
361 
362   template <typename RefType>
363   class Optional
364   {
365   public:
Optional(RefType & reference)366     Optional(RefType & reference) { m_ptr = &reference; }
Optional(RefType * ptr)367     Optional(RefType * ptr) { m_ptr = ptr; }
Optional(std::nullptr_t)368     Optional(std::nullptr_t) { m_ptr = nullptr; }
369 
operator RefType*() const370     operator RefType*() const { return m_ptr; }
operator ->() const371     RefType const* operator->() const { return m_ptr; }
operator bool() const372     explicit operator bool() const { return !!m_ptr; }
373 
374   private:
375     RefType *m_ptr;
376   };
377 
378   template <typename X, typename Y> struct isStructureChainValid { enum { value = false }; };
379 
380   template <typename P, typename T>
381   struct TypeList
382   {
383     using list = P;
384     using last = T;
385   };
386 
387   template <typename List, typename X>
388   struct extendCheck
389   {
390     static const bool valid = isStructureChainValid<typename List::last, X>::value || extendCheck<typename List::list,X>::valid;
391   };
392 
393   template <typename T, typename X>
394   struct extendCheck<TypeList<void,T>,X>
395   {
396     static const bool valid = isStructureChainValid<T, X>::value;
397   };
398 
399   template <typename X>
400   struct extendCheck<void,X>
401   {
402     static const bool valid = true;
403   };
404 
405   template <class Element>
406   class StructureChainElement
407   {
408   public:
operator Element&()409     explicit operator Element&() { return value; }
operator const Element&() const410     explicit operator const Element&() const { return value; }
411   private:
412     Element value;
413   };
414 
415   template<typename ...StructureElements>
416   class StructureChain : private StructureChainElement<StructureElements>...
417   {
418   public:
StructureChain()419     StructureChain()
420     {
421       link<void, StructureElements...>();
422     }
423 
StructureChain(StructureChain const & rhs)424     StructureChain(StructureChain const &rhs)
425     {
426       linkAndCopy<void, StructureElements...>(rhs);
427     }
428 
StructureChain(StructureElements const &...elems)429     StructureChain(StructureElements const &... elems)
430     {
431       linkAndCopyElements<void, StructureElements...>(elems...);
432     }
433 
operator =(StructureChain const & rhs)434     StructureChain& operator=(StructureChain const &rhs)
435     {
436       linkAndCopy<void, StructureElements...>(rhs);
437       return *this;
438     }
439 
get()440     template<typename ClassType> ClassType& get() { return static_cast<ClassType&>(*this);}
441 
442     template<typename ClassTypeA, typename ClassTypeB, typename ...ClassTypes>
get()443     std::tuple<ClassTypeA, ClassTypeB, ClassTypes...> get()
444     {
445         return std::tuple_cat(
446             std::make_tuple(get<ClassTypeA>(),get<ClassTypeB>()),
447             std::make_tuple(get<ClassTypes>()...)
448         );
449     }
450 
451   private:
452     template<typename List, typename X>
link()453     void link()
454     {
455       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
456     }
457 
458     template<typename List, typename X, typename Y, typename ...Z>
link()459     void link()
460     {
461       static_assert(extendCheck<List,X>::valid, "The structure chain is not valid!");
462       X& x = static_cast<X&>(*this);
463       Y& y = static_cast<Y&>(*this);
464       x.pNext = &y;
465       link<TypeList<List, X>, Y, Z...>();
466     }
467 
468     template<typename List, typename X>
linkAndCopy(StructureChain const & rhs)469     void linkAndCopy(StructureChain const &rhs)
470     {
471       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
472       static_cast<X&>(*this) = static_cast<X const &>(rhs);
473     }
474 
475     template<typename List, typename X, typename Y, typename ...Z>
linkAndCopy(StructureChain const & rhs)476     void linkAndCopy(StructureChain const &rhs)
477     {
478       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
479       X& x = static_cast<X&>(*this);
480       Y& y = static_cast<Y&>(*this);
481       x = static_cast<X const &>(rhs);
482       x.pNext = &y;
483       linkAndCopy<TypeList<List, X>, Y, Z...>(rhs);
484     }
485 
486     template<typename List, typename X>
linkAndCopyElements(X const & xelem)487     void linkAndCopyElements(X const &xelem)
488     {
489       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
490       static_cast<X&>(*this) = xelem;
491     }
492 
493     template<typename List, typename X, typename Y, typename ...Z>
linkAndCopyElements(X const & xelem,Y const & yelem,Z const &...zelem)494     void linkAndCopyElements(X const &xelem, Y const &yelem, Z const &... zelem)
495     {
496       static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
497       X& x = static_cast<X&>(*this);
498       Y& y = static_cast<Y&>(*this);
499       x = xelem;
500       x.pNext = &y;
501       linkAndCopyElements<TypeList<List, X>, Y, Z...>(yelem, zelem...);
502     }
503   };
504 
505 #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
506   template <typename Type, typename Dispatch> class UniqueHandleTraits;
507 
508   template <typename Type, typename Dispatch>
509   class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
510   {
511   private:
512     using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
513 
514   public:
515     using element_type = Type;
516 
UniqueHandle(Type const & value=Type (),Deleter const & deleter=Deleter ())517     explicit UniqueHandle( Type const& value = Type(), Deleter const& deleter = Deleter() )
518       : Deleter( deleter)
519       , m_value( value )
520     {}
521 
522     UniqueHandle( UniqueHandle const& ) = delete;
523 
UniqueHandle(UniqueHandle && other)524     UniqueHandle( UniqueHandle && other )
525       : Deleter( std::move( static_cast<Deleter&>( other ) ) )
526       , m_value( other.release() )
527     {}
528 
~UniqueHandle()529     ~UniqueHandle()
530     {
531       if ( m_value ) this->destroy( m_value );
532     }
533 
534     UniqueHandle & operator=( UniqueHandle const& ) = delete;
535 
operator =(UniqueHandle && other)536     UniqueHandle & operator=( UniqueHandle && other )
537     {
538       reset( other.release() );
539       *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
540       return *this;
541     }
542 
operator bool() const543     explicit operator bool() const
544     {
545       return m_value.operator bool();
546     }
547 
operator ->() const548     Type const* operator->() const
549     {
550       return &m_value;
551     }
552 
operator ->()553     Type * operator->()
554     {
555       return &m_value;
556     }
557 
operator *() const558     Type const& operator*() const
559     {
560       return m_value;
561     }
562 
operator *()563     Type & operator*()
564     {
565       return m_value;
566     }
567 
get() const568     const Type & get() const
569     {
570       return m_value;
571     }
572 
get()573     Type & get()
574     {
575       return m_value;
576     }
577 
reset(Type const & value=Type ())578     void reset( Type const& value = Type() )
579     {
580       if ( m_value != value )
581       {
582         if ( m_value ) this->destroy( m_value );
583         m_value = value;
584       }
585     }
586 
release()587     Type release()
588     {
589       Type value = m_value;
590       m_value = nullptr;
591       return value;
592     }
593 
swap(UniqueHandle<Type,Dispatch> & rhs)594     void swap( UniqueHandle<Type,Dispatch> & rhs )
595     {
596       std::swap(m_value, rhs.m_value);
597       std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
598     }
599 
600   private:
601     Type    m_value;
602   };
603 
604   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)605   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
606   {
607     std::vector<typename UniqueType::element_type> newBuffer(handles.size());
608     std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
609     return newBuffer;
610   }
611 
612   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)613   VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs )
614   {
615     lhs.swap( rhs );
616   }
617 #endif
618 
619 #if !defined(VK_NO_PROTOTYPES)
620   class DispatchLoaderStatic
621   {
622   public:
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const623     VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const
624     {
625       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
626     }
627 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const628     VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const
629     {
630       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
631     }
632 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const633     VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const
634     {
635       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
636     }
637 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const638     VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const
639     {
640       return ::vkEnumerateInstanceVersion( pApiVersion );
641     }
642 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const643     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const
644     {
645       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
646     }
647 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const648     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const
649     {
650       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
651     }
652 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const653     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const
654     {
655       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
656     }
657 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const658     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const
659     {
660       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
661     }
662 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const663     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const
664     {
665       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
666     }
667 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const668     void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const
669     {
670       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
671     }
672 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfoKHR * pSubpassBeginInfo) const673     void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo ) const
674     {
675       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
676     }
677 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const678     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const
679     {
680       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
681     }
682 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const683     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
684     {
685       return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
686     }
687 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const688     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const
689     {
690       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
691     }
692 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const693     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const
694     {
695       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
696     }
697 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const698     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const
699     {
700       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
701     }
702 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const703     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const
704     {
705       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
706     }
707 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const708     void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const
709     {
710       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
711     }
712 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const713     void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const
714     {
715       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
716     }
717 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset) const718     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const
719     {
720       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
721     }
722 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const723     void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const
724     {
725       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
726     }
727 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const728     void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const
729     {
730       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
731     }
732 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const733     void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const
734     {
735       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
736     }
737 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeNV mode) const738     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode ) const
739     {
740       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
741     }
742 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const743     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const
744     {
745       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
746     }
747 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const748     void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const
749     {
750       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
751     }
752 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const753     void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const
754     {
755       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
756     }
757 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const758     void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const
759     {
760       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
761     }
762 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const763     void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const
764     {
765       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
766     }
767 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const768     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const
769     {
770       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
771     }
772 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const773     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const
774     {
775       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
776     }
777 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const778     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const
779     {
780       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
781     }
782 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const783     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
784     {
785       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
786     }
787 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const788     void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
789     {
790       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
791     }
792 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const793     void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
794     {
795       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
796     }
797 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const798     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const
799     {
800       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
801     }
802 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const803     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
804     {
805       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
806     }
807 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const808     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const
809     {
810       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
811     }
812 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const813     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
814     {
815       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
816     }
817 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const818     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
819     {
820       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
821     }
822 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const823     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
824     {
825       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
826     }
827 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const828     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
829     {
830       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
831     }
832 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const833     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const
834     {
835       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
836     }
837 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const838     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
839     {
840       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
841     }
842 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const843     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
844     {
845       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
846     }
847 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const848     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
849     {
850       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
851     }
852 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const853     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
854     {
855       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
856     }
857 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const858     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const
859     {
860       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
861     }
862 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const863     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const
864     {
865       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
866     }
867 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const868     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const
869     {
870       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
871     }
872 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const873     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const
874     {
875       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
876     }
877 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const878     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const
879     {
880       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
881     }
882 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const883     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const
884     {
885       return ::vkCmdEndRenderPass( commandBuffer );
886     }
887 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfoKHR * pSubpassEndInfo) const888     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const
889     {
890       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
891     }
892 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const893     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const
894     {
895       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
896     }
897 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const898     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const
899     {
900       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
901     }
902 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const903     void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const
904     {
905       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
906     }
907 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const908     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const
909     {
910       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
911     }
912 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const913     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const
914     {
915       return ::vkCmdNextSubpass( commandBuffer, contents );
916     }
917 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfoKHR * pSubpassBeginInfo,const VkSubpassEndInfoKHR * pSubpassEndInfo) const918     void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const
919     {
920       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
921     }
922 
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) const923     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
924     {
925       return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
926     }
927 
vkCmdProcessCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdProcessCommandsInfoNVX * pProcessCommandsInfo) const928     void vkCmdProcessCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo ) const
929     {
930       return ::vkCmdProcessCommandsNVX( commandBuffer, pProcessCommandsInfo );
931     }
932 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const933     void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const
934     {
935       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
936     }
937 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const938     void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const
939     {
940       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
941     }
942 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const943     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const
944     {
945       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
946     }
947 
vkCmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo) const948     void vkCmdReserveSpaceForCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo ) const
949     {
950       return ::vkCmdReserveSpaceForCommandsNVX( commandBuffer, pReserveSpaceInfo );
951     }
952 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const953     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const
954     {
955       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
956     }
957 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const958     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
959     {
960       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
961     }
962 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const963     void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const
964     {
965       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
966     }
967 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const968     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const
969     {
970       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
971     }
972 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const973     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const
974     {
975       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
976     }
977 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const978     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const
979     {
980       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
981     }
982 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const983     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const
984     {
985       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
986     }
987 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const988     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const
989     {
990       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
991     }
992 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const993     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const
994     {
995       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
996     }
997 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const998     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const
999     {
1000       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
1001     }
1002 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const1003     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const
1004     {
1005       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
1006     }
1007 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const1008     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const
1009     {
1010       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1011     }
1012 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const1013     void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const
1014     {
1015       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
1016     }
1017 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const1018     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const
1019     {
1020       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
1021     }
1022 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1023     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const
1024     {
1025       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1026     }
1027 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const1028     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const
1029     {
1030       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
1031     }
1032 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const1033     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const
1034     {
1035       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
1036     }
1037 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const1038     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const
1039     {
1040       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
1041     }
1042 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const1043     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const
1044     {
1045       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
1046     }
1047 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1048     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const
1049     {
1050       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1051     }
1052 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1053     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const
1054     {
1055       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1056     }
1057 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const1058     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const
1059     {
1060       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1061     }
1062 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const1063     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const
1064     {
1065       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1066     }
1067 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1068     void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const
1069     {
1070       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1071     }
1072 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const1073     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const
1074     {
1075       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
1076     }
1077 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const1078     void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const
1079     {
1080       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
1081     }
1082 
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) const1083     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
1084     {
1085       return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
1086     }
1087 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const1088     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const
1089     {
1090       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1091     }
1092 
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) const1093     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
1094     {
1095       return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
1096     }
1097 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const1098     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const
1099     {
1100       return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
1101     }
1102 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const1103     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const
1104     {
1105       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
1106     }
1107 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const1108     void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const
1109     {
1110       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1111     }
1112 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const1113     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const
1114     {
1115       return ::vkEndCommandBuffer( commandBuffer );
1116     }
1117 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const1118     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const
1119     {
1120       return ::vkResetCommandBuffer( commandBuffer, flags );
1121     }
1122 
1123 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1124     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const
1125     {
1126       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
1127     }
1128 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1129 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const1130     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const
1131     {
1132       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
1133     }
1134 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const1135     VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const
1136     {
1137       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
1138     }
1139 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const1140     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const
1141     {
1142       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
1143     }
1144 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1145     VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const
1146     {
1147       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1148     }
1149 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1150     VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const
1151     {
1152       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1153     }
1154 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1155     VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const
1156     {
1157       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1158     }
1159 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos) const1160     VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const
1161     {
1162       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
1163     }
1164 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1165     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const
1166     {
1167       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1168     }
1169 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1170     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const
1171     {
1172       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1173     }
1174 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const1175     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const
1176     {
1177       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
1178     }
1179 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1180     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const
1181     {
1182       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1183     }
1184 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1185     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const
1186     {
1187       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1188     }
1189 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const1190     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const
1191     {
1192       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
1193     }
1194 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const1195     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const
1196     {
1197       return ::vkCompileDeferredNV( device, pipeline, shader );
1198     }
1199 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const1200     VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const
1201     {
1202       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
1203     }
1204 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const1205     VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const
1206     {
1207       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
1208     }
1209 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const1210     VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const
1211     {
1212       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
1213     }
1214 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const1215     VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const
1216     {
1217       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
1218     }
1219 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1220     VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
1221     {
1222       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1223     }
1224 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const1225     VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const
1226     {
1227       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
1228     }
1229 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const1230     VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const
1231     {
1232       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
1233     }
1234 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const1235     VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const
1236     {
1237       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
1238     }
1239 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const1240     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const
1241     {
1242       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
1243     }
1244 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const1245     VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const
1246     {
1247       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
1248     }
1249 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1250     VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
1251     {
1252       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
1253     }
1254 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const1255     VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const
1256     {
1257       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
1258     }
1259 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1260     VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
1261     {
1262       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1263     }
1264 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const1265     VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const
1266     {
1267       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
1268     }
1269 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const1270     VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const
1271     {
1272       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
1273     }
1274 
vkCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout) const1275     VkResult vkCreateIndirectCommandsLayoutNVX( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout ) const
1276     {
1277       return ::vkCreateIndirectCommandsLayoutNVX( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
1278     }
1279 
vkCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable) const1280     VkResult vkCreateObjectTableNVX( VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable ) const
1281     {
1282       return ::vkCreateObjectTableNVX( device, pCreateInfo, pAllocator, pObjectTable );
1283     }
1284 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const1285     VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const
1286     {
1287       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
1288     }
1289 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const1290     VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const
1291     {
1292       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
1293     }
1294 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const1295     VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const
1296     {
1297       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
1298     }
1299 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1300     VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
1301     {
1302       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1303     }
1304 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1305     VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const
1306     {
1307       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
1308     }
1309 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1310     VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const
1311     {
1312       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
1313     }
1314 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const1315     VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const
1316     {
1317       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
1318     }
1319 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const1320     VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const
1321     {
1322       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
1323     }
1324 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const1325     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const
1326     {
1327       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
1328     }
1329 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const1330     VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const
1331     {
1332       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
1333     }
1334 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const1335     VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const
1336     {
1337       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
1338     }
1339 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const1340     VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const
1341     {
1342       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
1343     }
1344 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const1345     VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const
1346     {
1347       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
1348     }
1349 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const1350     VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const
1351     {
1352       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
1353     }
1354 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const1355     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const
1356     {
1357       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
1358     }
1359 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const1360     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const
1361     {
1362       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
1363     }
1364 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator) const1365     void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const
1366     {
1367       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
1368     }
1369 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const1370     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const
1371     {
1372       return ::vkDestroyBuffer( device, buffer, pAllocator );
1373     }
1374 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const1375     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const
1376     {
1377       return ::vkDestroyBufferView( device, bufferView, pAllocator );
1378     }
1379 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const1380     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const
1381     {
1382       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
1383     }
1384 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const1385     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const
1386     {
1387       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
1388     }
1389 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const1390     void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const
1391     {
1392       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
1393     }
1394 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const1395     void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const
1396     {
1397       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
1398     }
1399 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const1400     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const
1401     {
1402       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
1403     }
1404 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const1405     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const
1406     {
1407       return ::vkDestroyDevice( device, pAllocator );
1408     }
1409 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const1410     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const
1411     {
1412       return ::vkDestroyEvent( device, event, pAllocator );
1413     }
1414 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const1415     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const
1416     {
1417       return ::vkDestroyFence( device, fence, pAllocator );
1418     }
1419 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const1420     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const
1421     {
1422       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
1423     }
1424 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const1425     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const
1426     {
1427       return ::vkDestroyImage( device, image, pAllocator );
1428     }
1429 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const1430     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const
1431     {
1432       return ::vkDestroyImageView( device, imageView, pAllocator );
1433     }
1434 
vkDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const1435     void vkDestroyIndirectCommandsLayoutNVX( VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const
1436     {
1437       return ::vkDestroyIndirectCommandsLayoutNVX( device, indirectCommandsLayout, pAllocator );
1438     }
1439 
vkDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator) const1440     void vkDestroyObjectTableNVX( VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator ) const
1441     {
1442       return ::vkDestroyObjectTableNVX( device, objectTable, pAllocator );
1443     }
1444 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const1445     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const
1446     {
1447       return ::vkDestroyPipeline( device, pipeline, pAllocator );
1448     }
1449 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const1450     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const
1451     {
1452       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
1453     }
1454 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const1455     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const
1456     {
1457       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
1458     }
1459 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const1460     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const
1461     {
1462       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
1463     }
1464 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const1465     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const
1466     {
1467       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
1468     }
1469 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const1470     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const
1471     {
1472       return ::vkDestroySampler( device, sampler, pAllocator );
1473     }
1474 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const1475     void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const
1476     {
1477       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
1478     }
1479 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const1480     void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const
1481     {
1482       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
1483     }
1484 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const1485     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const
1486     {
1487       return ::vkDestroySemaphore( device, semaphore, pAllocator );
1488     }
1489 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const1490     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const
1491     {
1492       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
1493     }
1494 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const1495     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const
1496     {
1497       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
1498     }
1499 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const1500     void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const
1501     {
1502       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
1503     }
1504 
vkDeviceWaitIdle(VkDevice device) const1505     VkResult vkDeviceWaitIdle( VkDevice device ) const
1506     {
1507       return ::vkDeviceWaitIdle( device );
1508     }
1509 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const1510     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const
1511     {
1512       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
1513     }
1514 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1515     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const
1516     {
1517       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1518     }
1519 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1520     void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const
1521     {
1522       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
1523     }
1524 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const1525     VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const
1526     {
1527       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
1528     }
1529 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const1530     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const
1531     {
1532       return ::vkFreeMemory( device, memory, pAllocator );
1533     }
1534 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData) const1535     VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const
1536     {
1537       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
1538     }
1539 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const1540     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const
1541     {
1542       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
1543     }
1544 
1545 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const1546     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const
1547     {
1548       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
1549     }
1550 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1551 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfoEXT * pInfo) const1552     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo ) const
1553     {
1554       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
1555     }
1556 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const1557     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const
1558     {
1559       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
1560     }
1561 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const1562     void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
1563     {
1564       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
1565     }
1566 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const1567     void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
1568     {
1569       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
1570     }
1571 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const1572     VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const
1573     {
1574       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
1575     }
1576 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const1577     void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const
1578     {
1579       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
1580     }
1581 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const1582     void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const
1583     {
1584       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
1585     }
1586 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const1587     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const
1588     {
1589       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
1590     }
1591 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const1592     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const
1593     {
1594       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
1595     }
1596 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const1597     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const
1598     {
1599       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
1600     }
1601 
1602 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const1603     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const
1604     {
1605       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
1606     }
1607 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1608 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const1609     VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const
1610     {
1611       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
1612     }
1613 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const1614     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const
1615     {
1616       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
1617     }
1618 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const1619     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const
1620     {
1621       return ::vkGetDeviceProcAddr( device, pName );
1622     }
1623 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const1624     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const
1625     {
1626       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
1627     }
1628 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const1629     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const
1630     {
1631       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
1632     }
1633 
vkGetEventStatus(VkDevice device,VkEvent event) const1634     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const
1635     {
1636       return ::vkGetEventStatus( device, event );
1637     }
1638 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const1639     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const
1640     {
1641       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
1642     }
1643 
vkGetFenceStatus(VkDevice device,VkFence fence) const1644     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const
1645     {
1646       return ::vkGetFenceStatus( device, fence );
1647     }
1648 
1649 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const1650     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
1651     {
1652       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
1653     }
1654 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1655 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const1656     VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const
1657     {
1658       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
1659     }
1660 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const1661     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const
1662     {
1663       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
1664     }
1665 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const1666     void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
1667     {
1668       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
1669     }
1670 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const1671     void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
1672     {
1673       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
1674     }
1675 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const1676     void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const
1677     {
1678       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1679     }
1680 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const1681     void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const
1682     {
1683       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1684     }
1685 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const1686     void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const
1687     {
1688       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1689     }
1690 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const1691     void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const
1692     {
1693       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
1694     }
1695 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const1696     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const
1697     {
1698       return ::vkGetImageViewHandleNVX( device, pInfo );
1699     }
1700 
1701 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const1702     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const
1703     {
1704       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
1705     }
1706 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1707 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const1708     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const
1709     {
1710       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
1711     }
1712 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const1713     VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const
1714     {
1715       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
1716     }
1717 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const1718     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const
1719     {
1720       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
1721     }
1722 
1723 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const1724     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
1725     {
1726       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
1727     }
1728 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1729 
1730 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const1731     VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const
1732     {
1733       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
1734     }
1735 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1736 
1737 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const1738     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const
1739     {
1740       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
1741     }
1742 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1743 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const1744     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const
1745     {
1746       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
1747     }
1748 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const1749     VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const
1750     {
1751       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
1752     }
1753 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const1754     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const
1755     {
1756       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
1757     }
1758 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const1759     VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const
1760     {
1761       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
1762     }
1763 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const1764     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const
1765     {
1766       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
1767     }
1768 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const1769     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const
1770     {
1771       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
1772     }
1773 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const1774     VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const
1775     {
1776       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
1777     }
1778 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const1779     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const
1780     {
1781       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
1782     }
1783 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const1784     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const
1785     {
1786       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
1787     }
1788 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const1789     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const
1790     {
1791       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
1792     }
1793 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const1794     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const
1795     {
1796       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
1797     }
1798 
1799 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const1800     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
1801     {
1802       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
1803     }
1804 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1805 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const1806     VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const
1807     {
1808       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
1809     }
1810 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const1811     VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const
1812     {
1813       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
1814     }
1815 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const1816     VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const
1817     {
1818       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
1819     }
1820 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const1821     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const
1822     {
1823       return ::vkGetSwapchainStatusKHR( device, swapchain );
1824     }
1825 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const1826     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const
1827     {
1828       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
1829     }
1830 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const1831     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const
1832     {
1833       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
1834     }
1835 
1836 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const1837     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const
1838     {
1839       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
1840     }
1841 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1842 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const1843     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const
1844     {
1845       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
1846     }
1847 
1848 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const1849     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const
1850     {
1851       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
1852     }
1853 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1854 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const1855     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const
1856     {
1857       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
1858     }
1859 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1860     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const
1861     {
1862       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1863     }
1864 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const1865     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const
1866     {
1867       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
1868     }
1869 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const1870     VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const
1871     {
1872       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
1873     }
1874 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const1875     VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const
1876     {
1877       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
1878     }
1879 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1880     VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
1881     {
1882       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
1883     }
1884 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1885     VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
1886     {
1887       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
1888     }
1889 
vkRegisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices) const1890     VkResult vkRegisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices ) const
1891     {
1892       return ::vkRegisterObjectsNVX( device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices );
1893     }
1894 
1895 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const1896     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const
1897     {
1898       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
1899     }
1900 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1901 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const1902     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const
1903     {
1904       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
1905     }
1906 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const1907     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const
1908     {
1909       return ::vkResetCommandPool( device, commandPool, flags );
1910     }
1911 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const1912     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const
1913     {
1914       return ::vkResetDescriptorPool( device, descriptorPool, flags );
1915     }
1916 
vkResetEvent(VkDevice device,VkEvent event) const1917     VkResult vkResetEvent( VkDevice device, VkEvent event ) const
1918     {
1919       return ::vkResetEvent( device, event );
1920     }
1921 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const1922     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const
1923     {
1924       return ::vkResetFences( device, fenceCount, pFences );
1925     }
1926 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const1927     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
1928     {
1929       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
1930     }
1931 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const1932     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const
1933     {
1934       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
1935     }
1936 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const1937     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const
1938     {
1939       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
1940     }
1941 
vkSetEvent(VkDevice device,VkEvent event) const1942     VkResult vkSetEvent( VkDevice device, VkEvent event ) const
1943     {
1944       return ::vkSetEvent( device, event );
1945     }
1946 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const1947     void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const
1948     {
1949       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
1950     }
1951 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const1952     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const
1953     {
1954       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
1955     }
1956 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const1957     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const
1958     {
1959       return ::vkTrimCommandPool( device, commandPool, flags );
1960     }
1961 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const1962     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const
1963     {
1964       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
1965     }
1966 
vkUninitializePerformanceApiINTEL(VkDevice device) const1967     void vkUninitializePerformanceApiINTEL( VkDevice device ) const
1968     {
1969       return ::vkUninitializePerformanceApiINTEL( device );
1970     }
1971 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const1972     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const
1973     {
1974       return ::vkUnmapMemory( device, memory );
1975     }
1976 
vkUnregisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices) const1977     VkResult vkUnregisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices ) const
1978     {
1979       return ::vkUnregisterObjectsNVX( device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices );
1980     }
1981 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const1982     void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const
1983     {
1984       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
1985     }
1986 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const1987     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const
1988     {
1989       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
1990     }
1991 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const1992     void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const
1993     {
1994       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
1995     }
1996 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const1997     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const
1998     {
1999       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
2000     }
2001 
2002 #ifdef VK_USE_PLATFORM_ANDROID_KHR
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2003     VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2004     {
2005       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2006     }
2007 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2008 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const2009     VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const
2010     {
2011       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2012     }
2013 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const2014     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const
2015     {
2016       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
2017     }
2018 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2019     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2020     {
2021       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2022     }
2023 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2024     VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2025     {
2026       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2027     }
2028 
2029 #ifdef VK_USE_PLATFORM_IOS_MVK
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2030     VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2031     {
2032       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2033     }
2034 #endif /*VK_USE_PLATFORM_IOS_MVK*/
2035 
2036 #ifdef VK_USE_PLATFORM_FUCHSIA
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2037     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2038     {
2039       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
2040     }
2041 #endif /*VK_USE_PLATFORM_FUCHSIA*/
2042 
2043 #ifdef VK_USE_PLATFORM_MACOS_MVK
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2044     VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2045     {
2046       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
2047     }
2048 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
2049 
2050 #ifdef VK_USE_PLATFORM_METAL_EXT
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2051     VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2052     {
2053       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
2054     }
2055 #endif /*VK_USE_PLATFORM_METAL_EXT*/
2056 
2057 #ifdef VK_USE_PLATFORM_GGP
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2058     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2059     {
2060       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
2061     }
2062 #endif /*VK_USE_PLATFORM_GGP*/
2063 
2064 #ifdef VK_USE_PLATFORM_VI_NN
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2065     VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2066     {
2067       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
2068     }
2069 #endif /*VK_USE_PLATFORM_VI_NN*/
2070 
2071 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2072     VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2073     {
2074       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2075     }
2076 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2077 
2078 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2079     VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2080     {
2081       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2082     }
2083 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2084 
2085 #ifdef VK_USE_PLATFORM_XCB_KHR
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2086     VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2087     {
2088       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2089     }
2090 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2091 
2092 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2093     VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
2094     {
2095       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2096     }
2097 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2098 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const2099     void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const
2100     {
2101       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2102     }
2103 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const2104     void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const
2105     {
2106       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2107     }
2108 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const2109     void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const
2110     {
2111       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
2112     }
2113 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const2114     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const
2115     {
2116       return ::vkDestroyInstance( instance, pAllocator );
2117     }
2118 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2119     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const
2120     {
2121       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2122     }
2123 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2124     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const
2125     {
2126       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2127     }
2128 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2129     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const
2130     {
2131       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2132     }
2133 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const2134     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const
2135     {
2136       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
2137     }
2138 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const2139     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const
2140     {
2141       return ::vkGetInstanceProcAddr( instance, pName );
2142     }
2143 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const2144     void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const
2145     {
2146       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
2147     }
2148 
2149 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const2150     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const
2151     {
2152       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
2153     }
2154 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
2155 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const2156     VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const
2157     {
2158       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
2159     }
2160 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2161     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const
2162     {
2163       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2164     }
2165 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const2166     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const
2167     {
2168       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
2169     }
2170 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const2171     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const
2172     {
2173       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
2174     }
2175 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const2176     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const
2177     {
2178       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
2179     }
2180 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2181     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const
2182     {
2183       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2184     }
2185 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const2186     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const
2187     {
2188       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
2189     }
2190 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2191     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const
2192     {
2193       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2194     }
2195 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2196     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const
2197     {
2198       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2199     }
2200 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const2201     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const
2202     {
2203       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
2204     }
2205 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const2206     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const
2207     {
2208       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
2209     }
2210 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const2211     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const
2212     {
2213       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2214     }
2215 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2216     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const
2217     {
2218       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2219     }
2220 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const2221     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const
2222     {
2223       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
2224     }
2225 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2226     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const
2227     {
2228       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2229     }
2230 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2231     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const
2232     {
2233       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2234     }
2235 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2236     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const
2237     {
2238       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2239     }
2240 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2241     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const
2242     {
2243       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2244     }
2245 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2246     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const
2247     {
2248       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2249     }
2250 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const2251     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const
2252     {
2253       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
2254     }
2255 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2256     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const
2257     {
2258       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2259     }
2260 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2261     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const
2262     {
2263       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2264     }
2265 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const2266     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const
2267     {
2268       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
2269     }
2270 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2271     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const
2272     {
2273       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2274     }
2275 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2276     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const
2277     {
2278       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
2279     }
2280 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const2281     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const
2282     {
2283       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
2284     }
2285 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2286     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const
2287     {
2288       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2289     }
2290 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2291     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const
2292     {
2293       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
2294     }
2295 
vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(VkPhysicalDevice physicalDevice,VkDeviceGeneratedCommandsFeaturesNVX * pFeatures,VkDeviceGeneratedCommandsLimitsNVX * pLimits) const2296     void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits ) const
2297     {
2298       return ::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( physicalDevice, pFeatures, pLimits );
2299     }
2300 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const2301     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const
2302     {
2303       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
2304     }
2305 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2306     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const
2307     {
2308       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2309     }
2310 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2311     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const
2312     {
2313       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2314     }
2315 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const2316     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const
2317     {
2318       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
2319     }
2320 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2321     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const
2322     {
2323       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
2324     }
2325 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2326     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const
2327     {
2328       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
2329     }
2330 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const2331     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const
2332     {
2333       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
2334     }
2335 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const2336     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const
2337     {
2338       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
2339     }
2340 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const2341     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const
2342     {
2343       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
2344     }
2345 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2346     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const
2347     {
2348       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
2349     }
2350 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2351     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const
2352     {
2353       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
2354     }
2355 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const2356     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const
2357     {
2358       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2359     }
2360 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2361     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const
2362     {
2363       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2364     }
2365 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2366     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const
2367     {
2368       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2369     }
2370 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const2371     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const
2372     {
2373       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
2374     }
2375 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2376     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const
2377     {
2378       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2379     }
2380 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2381     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const
2382     {
2383       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2384     }
2385 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const2386     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const
2387     {
2388       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
2389     }
2390 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const2391     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const
2392     {
2393       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
2394     }
2395 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const2396     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const
2397     {
2398       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
2399     }
2400 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const2401     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const
2402     {
2403       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
2404     }
2405 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const2406     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const
2407     {
2408       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
2409     }
2410 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const2411     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const
2412     {
2413       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
2414     }
2415 
2416 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const2417     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const
2418     {
2419       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
2420     }
2421 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2422 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const2423     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const
2424     {
2425       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
2426     }
2427 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const2428     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const
2429     {
2430       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
2431     }
2432 
2433 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const2434     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const
2435     {
2436       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
2437     }
2438 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2439 
2440 #ifdef VK_USE_PLATFORM_WIN32_KHR
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const2441     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const
2442     {
2443       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
2444     }
2445 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
2446 
2447 #ifdef VK_USE_PLATFORM_XCB_KHR
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const2448     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const
2449     {
2450       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
2451     }
2452 #endif /*VK_USE_PLATFORM_XCB_KHR*/
2453 
2454 #ifdef VK_USE_PLATFORM_XLIB_KHR
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const2455     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const
2456     {
2457       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
2458     }
2459 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
2460 
2461 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const2462     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const
2463     {
2464       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
2465     }
2466 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
2467 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const2468     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const
2469     {
2470       return ::vkReleaseDisplayEXT( physicalDevice, display );
2471     }
2472 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const2473     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const
2474     {
2475       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
2476     }
2477 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const2478     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const
2479     {
2480       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
2481     }
2482 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const2483     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const
2484     {
2485       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
2486     }
2487 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const2488     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const
2489     {
2490       return ::vkQueueEndDebugUtilsLabelEXT( queue );
2491     }
2492 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const2493     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const
2494     {
2495       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
2496     }
2497 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const2498     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const
2499     {
2500       return ::vkQueuePresentKHR( queue, pPresentInfo );
2501     }
2502 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const2503     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const
2504     {
2505       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
2506     }
2507 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const2508     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const
2509     {
2510       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
2511     }
2512 
vkQueueWaitIdle(VkQueue queue) const2513     VkResult vkQueueWaitIdle( VkQueue queue ) const
2514     {
2515       return ::vkQueueWaitIdle( queue );
2516     }
2517   };
2518 
2519   typedef DispatchLoaderStatic DispatchLoaderDefault;
2520 #else // !defined(VK_NO_PROTOTYPES)
2521   class NeedExplicitDispatchLoader;
2522   typedef NeedExplicitDispatchLoader DispatchLoaderDefault;
2523 #endif
2524 
2525   struct AllocationCallbacks;
2526 
2527   template <typename OwnerType, typename Dispatch>
2528   class ObjectDestroy
2529   {
2530     public:
ObjectDestroy(OwnerType owner=OwnerType (),Optional<const AllocationCallbacks> allocationCallbacks=nullptr,Dispatch const & dispatch=Dispatch ())2531       ObjectDestroy( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
2532         : m_owner( owner )
2533         , m_allocationCallbacks( allocationCallbacks )
2534         , m_dispatch( &dispatch )
2535       {}
2536 
getOwner() const2537       OwnerType getOwner() const { return m_owner; }
getAllocator() const2538       Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
2539 
2540     protected:
2541       template <typename T>
destroy(T t)2542       void destroy(T t)
2543       {
2544         m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
2545       }
2546 
2547     private:
2548       OwnerType m_owner;
2549       Optional<const AllocationCallbacks> m_allocationCallbacks;
2550       Dispatch const* m_dispatch;
2551   };
2552 
2553   class NoParent;
2554 
2555   template <typename Dispatch>
2556   class ObjectDestroy<NoParent,Dispatch>
2557   {
2558     public:
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks=nullptr,Dispatch const & dispatch=Dispatch ())2559       ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
2560         : m_allocationCallbacks( allocationCallbacks )
2561         , m_dispatch( &dispatch )
2562       {}
2563 
getAllocator() const2564       Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
2565 
2566     protected:
2567       template <typename T>
destroy(T t)2568       void destroy(T t)
2569       {
2570         t.destroy( m_allocationCallbacks, *m_dispatch );
2571       }
2572 
2573     private:
2574       Optional<const AllocationCallbacks> m_allocationCallbacks;
2575       Dispatch const* m_dispatch;
2576   };
2577 
2578   template <typename OwnerType, typename Dispatch>
2579   class ObjectFree
2580   {
2581     public:
ObjectFree(OwnerType owner=OwnerType (),Optional<const AllocationCallbacks> allocationCallbacks=nullptr,Dispatch const & dispatch=Dispatch ())2582       ObjectFree( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
2583         : m_owner( owner )
2584         , m_allocationCallbacks( allocationCallbacks )
2585         , m_dispatch( &dispatch )
2586       {}
2587 
getOwner() const2588       OwnerType getOwner() const { return m_owner; }
getAllocator() const2589       Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
2590 
2591     protected:
2592       template <typename T>
destroy(T t)2593       void destroy(T t)
2594       {
2595         m_owner.free( t, m_allocationCallbacks, *m_dispatch );
2596       }
2597 
2598     private:
2599       OwnerType m_owner;
2600       Optional<const AllocationCallbacks> m_allocationCallbacks;
2601       Dispatch const* m_dispatch;
2602   };
2603 
2604   template <typename OwnerType, typename PoolType, typename Dispatch>
2605   class PoolFree
2606   {
2607     public:
PoolFree(OwnerType owner=OwnerType (),PoolType pool=PoolType (),Dispatch const & dispatch=Dispatch ())2608       PoolFree( OwnerType owner = OwnerType(), PoolType pool = PoolType(), Dispatch const &dispatch = Dispatch() )
2609         : m_owner( owner )
2610         , m_pool( pool )
2611         , m_dispatch( &dispatch )
2612       {}
2613 
getOwner() const2614       OwnerType getOwner() const { return m_owner; }
getPool() const2615       PoolType getPool() const { return m_pool; }
2616 
2617     protected:
2618       template <typename T>
destroy(T t)2619       void destroy(T t)
2620       {
2621         m_owner.free( m_pool, t, *m_dispatch );
2622       }
2623 
2624     private:
2625       OwnerType m_owner;
2626       PoolType m_pool;
2627       Dispatch const* m_dispatch;
2628   };
2629 
2630   using Bool32 = uint32_t;
2631   using DeviceAddress = uint64_t;
2632   using DeviceSize = uint64_t;
2633   using SampleMask = uint32_t;
2634 
2635   enum class AccelerationStructureMemoryRequirementsTypeNV
2636   {
2637     eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
2638     eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
2639     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
2640   };
2641 
to_string(AccelerationStructureMemoryRequirementsTypeNV value)2642   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
2643   {
2644     switch ( value )
2645     {
2646       case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object";
2647       case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch";
2648       case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch";
2649       default: return "invalid";
2650     }
2651   }
2652 
2653   enum class AccelerationStructureTypeNV
2654   {
2655     eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
2656     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
2657   };
2658 
to_string(AccelerationStructureTypeNV value)2659   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeNV value )
2660   {
2661     switch ( value )
2662     {
2663       case AccelerationStructureTypeNV::eTopLevel : return "TopLevel";
2664       case AccelerationStructureTypeNV::eBottomLevel : return "BottomLevel";
2665       default: return "invalid";
2666     }
2667   }
2668 
2669   enum class AttachmentLoadOp
2670   {
2671     eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
2672     eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
2673     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
2674   };
2675 
to_string(AttachmentLoadOp value)2676   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
2677   {
2678     switch ( value )
2679     {
2680       case AttachmentLoadOp::eLoad : return "Load";
2681       case AttachmentLoadOp::eClear : return "Clear";
2682       case AttachmentLoadOp::eDontCare : return "DontCare";
2683       default: return "invalid";
2684     }
2685   }
2686 
2687   enum class AttachmentStoreOp
2688   {
2689     eStore = VK_ATTACHMENT_STORE_OP_STORE,
2690     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
2691   };
2692 
to_string(AttachmentStoreOp value)2693   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
2694   {
2695     switch ( value )
2696     {
2697       case AttachmentStoreOp::eStore : return "Store";
2698       case AttachmentStoreOp::eDontCare : return "DontCare";
2699       default: return "invalid";
2700     }
2701   }
2702 
2703   enum class BlendFactor
2704   {
2705     eZero = VK_BLEND_FACTOR_ZERO,
2706     eOne = VK_BLEND_FACTOR_ONE,
2707     eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
2708     eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
2709     eDstColor = VK_BLEND_FACTOR_DST_COLOR,
2710     eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
2711     eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
2712     eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
2713     eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
2714     eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
2715     eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
2716     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
2717     eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
2718     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
2719     eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
2720     eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
2721     eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
2722     eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
2723     eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
2724   };
2725 
to_string(BlendFactor value)2726   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
2727   {
2728     switch ( value )
2729     {
2730       case BlendFactor::eZero : return "Zero";
2731       case BlendFactor::eOne : return "One";
2732       case BlendFactor::eSrcColor : return "SrcColor";
2733       case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
2734       case BlendFactor::eDstColor : return "DstColor";
2735       case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
2736       case BlendFactor::eSrcAlpha : return "SrcAlpha";
2737       case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
2738       case BlendFactor::eDstAlpha : return "DstAlpha";
2739       case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
2740       case BlendFactor::eConstantColor : return "ConstantColor";
2741       case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
2742       case BlendFactor::eConstantAlpha : return "ConstantAlpha";
2743       case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
2744       case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
2745       case BlendFactor::eSrc1Color : return "Src1Color";
2746       case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
2747       case BlendFactor::eSrc1Alpha : return "Src1Alpha";
2748       case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
2749       default: return "invalid";
2750     }
2751   }
2752 
2753   enum class BlendOp
2754   {
2755     eAdd = VK_BLEND_OP_ADD,
2756     eSubtract = VK_BLEND_OP_SUBTRACT,
2757     eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
2758     eMin = VK_BLEND_OP_MIN,
2759     eMax = VK_BLEND_OP_MAX,
2760     eZeroEXT = VK_BLEND_OP_ZERO_EXT,
2761     eSrcEXT = VK_BLEND_OP_SRC_EXT,
2762     eDstEXT = VK_BLEND_OP_DST_EXT,
2763     eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
2764     eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
2765     eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
2766     eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
2767     eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
2768     eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
2769     eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
2770     eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
2771     eXorEXT = VK_BLEND_OP_XOR_EXT,
2772     eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
2773     eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
2774     eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
2775     eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
2776     eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
2777     eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
2778     eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
2779     eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
2780     eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
2781     eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
2782     eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
2783     eInvertEXT = VK_BLEND_OP_INVERT_EXT,
2784     eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
2785     eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
2786     eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
2787     eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
2788     eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
2789     ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
2790     eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
2791     eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
2792     eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
2793     eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
2794     eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
2795     ePlusEXT = VK_BLEND_OP_PLUS_EXT,
2796     ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
2797     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
2798     ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
2799     eMinusEXT = VK_BLEND_OP_MINUS_EXT,
2800     eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
2801     eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
2802     eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
2803     eRedEXT = VK_BLEND_OP_RED_EXT,
2804     eGreenEXT = VK_BLEND_OP_GREEN_EXT,
2805     eBlueEXT = VK_BLEND_OP_BLUE_EXT
2806   };
2807 
to_string(BlendOp value)2808   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
2809   {
2810     switch ( value )
2811     {
2812       case BlendOp::eAdd : return "Add";
2813       case BlendOp::eSubtract : return "Subtract";
2814       case BlendOp::eReverseSubtract : return "ReverseSubtract";
2815       case BlendOp::eMin : return "Min";
2816       case BlendOp::eMax : return "Max";
2817       case BlendOp::eZeroEXT : return "ZeroEXT";
2818       case BlendOp::eSrcEXT : return "SrcEXT";
2819       case BlendOp::eDstEXT : return "DstEXT";
2820       case BlendOp::eSrcOverEXT : return "SrcOverEXT";
2821       case BlendOp::eDstOverEXT : return "DstOverEXT";
2822       case BlendOp::eSrcInEXT : return "SrcInEXT";
2823       case BlendOp::eDstInEXT : return "DstInEXT";
2824       case BlendOp::eSrcOutEXT : return "SrcOutEXT";
2825       case BlendOp::eDstOutEXT : return "DstOutEXT";
2826       case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
2827       case BlendOp::eDstAtopEXT : return "DstAtopEXT";
2828       case BlendOp::eXorEXT : return "XorEXT";
2829       case BlendOp::eMultiplyEXT : return "MultiplyEXT";
2830       case BlendOp::eScreenEXT : return "ScreenEXT";
2831       case BlendOp::eOverlayEXT : return "OverlayEXT";
2832       case BlendOp::eDarkenEXT : return "DarkenEXT";
2833       case BlendOp::eLightenEXT : return "LightenEXT";
2834       case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
2835       case BlendOp::eColorburnEXT : return "ColorburnEXT";
2836       case BlendOp::eHardlightEXT : return "HardlightEXT";
2837       case BlendOp::eSoftlightEXT : return "SoftlightEXT";
2838       case BlendOp::eDifferenceEXT : return "DifferenceEXT";
2839       case BlendOp::eExclusionEXT : return "ExclusionEXT";
2840       case BlendOp::eInvertEXT : return "InvertEXT";
2841       case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
2842       case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
2843       case BlendOp::eLinearburnEXT : return "LinearburnEXT";
2844       case BlendOp::eVividlightEXT : return "VividlightEXT";
2845       case BlendOp::eLinearlightEXT : return "LinearlightEXT";
2846       case BlendOp::ePinlightEXT : return "PinlightEXT";
2847       case BlendOp::eHardmixEXT : return "HardmixEXT";
2848       case BlendOp::eHslHueEXT : return "HslHueEXT";
2849       case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
2850       case BlendOp::eHslColorEXT : return "HslColorEXT";
2851       case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
2852       case BlendOp::ePlusEXT : return "PlusEXT";
2853       case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
2854       case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
2855       case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
2856       case BlendOp::eMinusEXT : return "MinusEXT";
2857       case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
2858       case BlendOp::eContrastEXT : return "ContrastEXT";
2859       case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
2860       case BlendOp::eRedEXT : return "RedEXT";
2861       case BlendOp::eGreenEXT : return "GreenEXT";
2862       case BlendOp::eBlueEXT : return "BlueEXT";
2863       default: return "invalid";
2864     }
2865   }
2866 
2867   enum class BlendOverlapEXT
2868   {
2869     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
2870     eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
2871     eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
2872   };
2873 
to_string(BlendOverlapEXT value)2874   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
2875   {
2876     switch ( value )
2877     {
2878       case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
2879       case BlendOverlapEXT::eDisjoint : return "Disjoint";
2880       case BlendOverlapEXT::eConjoint : return "Conjoint";
2881       default: return "invalid";
2882     }
2883   }
2884 
2885   enum class BorderColor
2886   {
2887     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
2888     eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
2889     eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
2890     eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
2891     eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
2892     eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE
2893   };
2894 
to_string(BorderColor value)2895   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
2896   {
2897     switch ( value )
2898     {
2899       case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
2900       case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
2901       case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
2902       case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
2903       case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
2904       case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
2905       default: return "invalid";
2906     }
2907   }
2908 
2909   enum class ChromaLocation
2910   {
2911     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
2912     eMidpoint = VK_CHROMA_LOCATION_MIDPOINT,
2913     eCositedEvenKHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR,
2914     eMidpointKHR = VK_CHROMA_LOCATION_MIDPOINT_KHR
2915   };
2916 
to_string(ChromaLocation value)2917   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
2918   {
2919     switch ( value )
2920     {
2921       case ChromaLocation::eCositedEven : return "CositedEven";
2922       case ChromaLocation::eMidpoint : return "Midpoint";
2923       default: return "invalid";
2924     }
2925   }
2926 
2927   enum class CoarseSampleOrderTypeNV
2928   {
2929     eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
2930     eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
2931     ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
2932     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
2933   };
2934 
to_string(CoarseSampleOrderTypeNV value)2935   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
2936   {
2937     switch ( value )
2938     {
2939       case CoarseSampleOrderTypeNV::eDefault : return "Default";
2940       case CoarseSampleOrderTypeNV::eCustom : return "Custom";
2941       case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
2942       case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
2943       default: return "invalid";
2944     }
2945   }
2946 
2947   enum class ColorSpaceKHR
2948   {
2949     eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
2950     eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
2951     eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
2952     eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
2953     eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
2954     eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
2955     eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
2956     eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
2957     eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
2958     eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
2959     eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
2960     eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
2961     eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
2962     ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
2963     eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
2964     eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
2965     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
2966     eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
2967   };
2968 
to_string(ColorSpaceKHR value)2969   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
2970   {
2971     switch ( value )
2972     {
2973       case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
2974       case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
2975       case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
2976       case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
2977       case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
2978       case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
2979       case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
2980       case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
2981       case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
2982       case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
2983       case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
2984       case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
2985       case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
2986       case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
2987       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
2988       case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
2989       default: return "invalid";
2990     }
2991   }
2992 
2993   enum class CommandBufferLevel
2994   {
2995     ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
2996     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
2997   };
2998 
to_string(CommandBufferLevel value)2999   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
3000   {
3001     switch ( value )
3002     {
3003       case CommandBufferLevel::ePrimary : return "Primary";
3004       case CommandBufferLevel::eSecondary : return "Secondary";
3005       default: return "invalid";
3006     }
3007   }
3008 
3009   enum class CompareOp
3010   {
3011     eNever = VK_COMPARE_OP_NEVER,
3012     eLess = VK_COMPARE_OP_LESS,
3013     eEqual = VK_COMPARE_OP_EQUAL,
3014     eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
3015     eGreater = VK_COMPARE_OP_GREATER,
3016     eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
3017     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
3018     eAlways = VK_COMPARE_OP_ALWAYS
3019   };
3020 
to_string(CompareOp value)3021   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
3022   {
3023     switch ( value )
3024     {
3025       case CompareOp::eNever : return "Never";
3026       case CompareOp::eLess : return "Less";
3027       case CompareOp::eEqual : return "Equal";
3028       case CompareOp::eLessOrEqual : return "LessOrEqual";
3029       case CompareOp::eGreater : return "Greater";
3030       case CompareOp::eNotEqual : return "NotEqual";
3031       case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
3032       case CompareOp::eAlways : return "Always";
3033       default: return "invalid";
3034     }
3035   }
3036 
3037   enum class ComponentSwizzle
3038   {
3039     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
3040     eZero = VK_COMPONENT_SWIZZLE_ZERO,
3041     eOne = VK_COMPONENT_SWIZZLE_ONE,
3042     eR = VK_COMPONENT_SWIZZLE_R,
3043     eG = VK_COMPONENT_SWIZZLE_G,
3044     eB = VK_COMPONENT_SWIZZLE_B,
3045     eA = VK_COMPONENT_SWIZZLE_A
3046   };
3047 
to_string(ComponentSwizzle value)3048   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
3049   {
3050     switch ( value )
3051     {
3052       case ComponentSwizzle::eIdentity : return "Identity";
3053       case ComponentSwizzle::eZero : return "Zero";
3054       case ComponentSwizzle::eOne : return "One";
3055       case ComponentSwizzle::eR : return "R";
3056       case ComponentSwizzle::eG : return "G";
3057       case ComponentSwizzle::eB : return "B";
3058       case ComponentSwizzle::eA : return "A";
3059       default: return "invalid";
3060     }
3061   }
3062 
3063   enum class ComponentTypeNV
3064   {
3065     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
3066     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
3067     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
3068     eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
3069     eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
3070     eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
3071     eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
3072     eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
3073     eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
3074     eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
3075     eUint64 = VK_COMPONENT_TYPE_UINT64_NV
3076   };
3077 
to_string(ComponentTypeNV value)3078   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
3079   {
3080     switch ( value )
3081     {
3082       case ComponentTypeNV::eFloat16 : return "Float16";
3083       case ComponentTypeNV::eFloat32 : return "Float32";
3084       case ComponentTypeNV::eFloat64 : return "Float64";
3085       case ComponentTypeNV::eSint8 : return "Sint8";
3086       case ComponentTypeNV::eSint16 : return "Sint16";
3087       case ComponentTypeNV::eSint32 : return "Sint32";
3088       case ComponentTypeNV::eSint64 : return "Sint64";
3089       case ComponentTypeNV::eUint8 : return "Uint8";
3090       case ComponentTypeNV::eUint16 : return "Uint16";
3091       case ComponentTypeNV::eUint32 : return "Uint32";
3092       case ComponentTypeNV::eUint64 : return "Uint64";
3093       default: return "invalid";
3094     }
3095   }
3096 
3097   enum class ConservativeRasterizationModeEXT
3098   {
3099     eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
3100     eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
3101     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
3102   };
3103 
to_string(ConservativeRasterizationModeEXT value)3104   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
3105   {
3106     switch ( value )
3107     {
3108       case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
3109       case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
3110       case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
3111       default: return "invalid";
3112     }
3113   }
3114 
3115   enum class CopyAccelerationStructureModeNV
3116   {
3117     eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
3118     eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV
3119   };
3120 
to_string(CopyAccelerationStructureModeNV value)3121   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeNV value )
3122   {
3123     switch ( value )
3124     {
3125       case CopyAccelerationStructureModeNV::eClone : return "Clone";
3126       case CopyAccelerationStructureModeNV::eCompact : return "Compact";
3127       default: return "invalid";
3128     }
3129   }
3130 
3131   enum class CoverageModulationModeNV
3132   {
3133     eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
3134     eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
3135     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
3136     eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
3137   };
3138 
to_string(CoverageModulationModeNV value)3139   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
3140   {
3141     switch ( value )
3142     {
3143       case CoverageModulationModeNV::eNone : return "None";
3144       case CoverageModulationModeNV::eRgb : return "Rgb";
3145       case CoverageModulationModeNV::eAlpha : return "Alpha";
3146       case CoverageModulationModeNV::eRgba : return "Rgba";
3147       default: return "invalid";
3148     }
3149   }
3150 
3151   enum class CoverageReductionModeNV
3152   {
3153     eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
3154     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
3155   };
3156 
to_string(CoverageReductionModeNV value)3157   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
3158   {
3159     switch ( value )
3160     {
3161       case CoverageReductionModeNV::eMerge : return "Merge";
3162       case CoverageReductionModeNV::eTruncate : return "Truncate";
3163       default: return "invalid";
3164     }
3165   }
3166 
3167   enum class DebugReportObjectTypeEXT
3168   {
3169     eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
3170     eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
3171     ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
3172     eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
3173     eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
3174     eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
3175     eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
3176     eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
3177     eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
3178     eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
3179     eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
3180     eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
3181     eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
3182     eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
3183     eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
3184     eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
3185     ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
3186     ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
3187     eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
3188     ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
3189     eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
3190     eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
3191     eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
3192     eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
3193     eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
3194     eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
3195     eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
3196     eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
3197     eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
3198     eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
3199     eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
3200     eObjectTableNVX = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
3201     eIndirectCommandsLayoutNVX = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
3202     eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
3203     eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
3204     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
3205     eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
3206     eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
3207     eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
3208     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
3209     eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT
3210   };
3211 
to_string(DebugReportObjectTypeEXT value)3212   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
3213   {
3214     switch ( value )
3215     {
3216       case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
3217       case DebugReportObjectTypeEXT::eInstance : return "Instance";
3218       case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
3219       case DebugReportObjectTypeEXT::eDevice : return "Device";
3220       case DebugReportObjectTypeEXT::eQueue : return "Queue";
3221       case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
3222       case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
3223       case DebugReportObjectTypeEXT::eFence : return "Fence";
3224       case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
3225       case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
3226       case DebugReportObjectTypeEXT::eImage : return "Image";
3227       case DebugReportObjectTypeEXT::eEvent : return "Event";
3228       case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
3229       case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
3230       case DebugReportObjectTypeEXT::eImageView : return "ImageView";
3231       case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
3232       case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
3233       case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
3234       case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
3235       case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
3236       case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
3237       case DebugReportObjectTypeEXT::eSampler : return "Sampler";
3238       case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
3239       case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
3240       case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
3241       case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
3242       case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
3243       case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
3244       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
3245       case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
3246       case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
3247       case DebugReportObjectTypeEXT::eObjectTableNVX : return "ObjectTableNVX";
3248       case DebugReportObjectTypeEXT::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX";
3249       case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
3250       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
3251       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
3252       case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV";
3253       default: return "invalid";
3254     }
3255   }
3256 
3257   enum class DescriptorType
3258   {
3259     eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
3260     eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
3261     eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
3262     eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
3263     eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
3264     eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
3265     eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
3266     eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
3267     eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
3268     eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
3269     eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
3270     eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
3271     eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
3272   };
3273 
to_string(DescriptorType value)3274   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
3275   {
3276     switch ( value )
3277     {
3278       case DescriptorType::eSampler : return "Sampler";
3279       case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
3280       case DescriptorType::eSampledImage : return "SampledImage";
3281       case DescriptorType::eStorageImage : return "StorageImage";
3282       case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
3283       case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
3284       case DescriptorType::eUniformBuffer : return "UniformBuffer";
3285       case DescriptorType::eStorageBuffer : return "StorageBuffer";
3286       case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
3287       case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
3288       case DescriptorType::eInputAttachment : return "InputAttachment";
3289       case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
3290       case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV";
3291       default: return "invalid";
3292     }
3293   }
3294 
3295   enum class DescriptorUpdateTemplateType
3296   {
3297     eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3298     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
3299     eDescriptorSetKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
3300   };
3301 
to_string(DescriptorUpdateTemplateType value)3302   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
3303   {
3304     switch ( value )
3305     {
3306       case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
3307       case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
3308       default: return "invalid";
3309     }
3310   }
3311 
3312   enum class DeviceEventTypeEXT
3313   {
3314     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
3315   };
3316 
to_string(DeviceEventTypeEXT value)3317   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
3318   {
3319     switch ( value )
3320     {
3321       case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
3322       default: return "invalid";
3323     }
3324   }
3325 
3326   enum class DiscardRectangleModeEXT
3327   {
3328     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
3329     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
3330   };
3331 
to_string(DiscardRectangleModeEXT value)3332   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
3333   {
3334     switch ( value )
3335     {
3336       case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
3337       case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
3338       default: return "invalid";
3339     }
3340   }
3341 
3342   enum class DisplayEventTypeEXT
3343   {
3344     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
3345   };
3346 
to_string(DisplayEventTypeEXT value)3347   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
3348   {
3349     switch ( value )
3350     {
3351       case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
3352       default: return "invalid";
3353     }
3354   }
3355 
3356   enum class DisplayPowerStateEXT
3357   {
3358     eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
3359     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
3360     eOn = VK_DISPLAY_POWER_STATE_ON_EXT
3361   };
3362 
to_string(DisplayPowerStateEXT value)3363   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
3364   {
3365     switch ( value )
3366     {
3367       case DisplayPowerStateEXT::eOff : return "Off";
3368       case DisplayPowerStateEXT::eSuspend : return "Suspend";
3369       case DisplayPowerStateEXT::eOn : return "On";
3370       default: return "invalid";
3371     }
3372   }
3373 
3374   enum class DriverIdKHR
3375   {
3376     eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY_KHR,
3377     eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR,
3378     eMesaRadv = VK_DRIVER_ID_MESA_RADV_KHR,
3379     eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR,
3380     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
3381     eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR,
3382     eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR,
3383     eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR,
3384     eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY_KHR,
3385     eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR,
3386     eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY_KHR,
3387     eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR
3388   };
3389 
to_string(DriverIdKHR value)3390   VULKAN_HPP_INLINE std::string to_string( DriverIdKHR value )
3391   {
3392     switch ( value )
3393     {
3394       case DriverIdKHR::eAmdProprietary : return "AmdProprietary";
3395       case DriverIdKHR::eAmdOpenSource : return "AmdOpenSource";
3396       case DriverIdKHR::eMesaRadv : return "MesaRadv";
3397       case DriverIdKHR::eNvidiaProprietary : return "NvidiaProprietary";
3398       case DriverIdKHR::eIntelProprietaryWindows : return "IntelProprietaryWindows";
3399       case DriverIdKHR::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
3400       case DriverIdKHR::eImaginationProprietary : return "ImaginationProprietary";
3401       case DriverIdKHR::eQualcommProprietary : return "QualcommProprietary";
3402       case DriverIdKHR::eArmProprietary : return "ArmProprietary";
3403       case DriverIdKHR::eGoogleSwiftshader : return "GoogleSwiftshader";
3404       case DriverIdKHR::eGgpProprietary : return "GgpProprietary";
3405       case DriverIdKHR::eBroadcomProprietary : return "BroadcomProprietary";
3406       default: return "invalid";
3407     }
3408   }
3409 
3410   enum class DynamicState
3411   {
3412     eViewport = VK_DYNAMIC_STATE_VIEWPORT,
3413     eScissor = VK_DYNAMIC_STATE_SCISSOR,
3414     eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
3415     eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
3416     eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
3417     eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
3418     eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
3419     eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
3420     eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
3421     eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
3422     eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
3423     eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
3424     eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
3425     eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
3426     eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
3427     eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT
3428   };
3429 
to_string(DynamicState value)3430   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
3431   {
3432     switch ( value )
3433     {
3434       case DynamicState::eViewport : return "Viewport";
3435       case DynamicState::eScissor : return "Scissor";
3436       case DynamicState::eLineWidth : return "LineWidth";
3437       case DynamicState::eDepthBias : return "DepthBias";
3438       case DynamicState::eBlendConstants : return "BlendConstants";
3439       case DynamicState::eDepthBounds : return "DepthBounds";
3440       case DynamicState::eStencilCompareMask : return "StencilCompareMask";
3441       case DynamicState::eStencilWriteMask : return "StencilWriteMask";
3442       case DynamicState::eStencilReference : return "StencilReference";
3443       case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
3444       case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
3445       case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
3446       case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
3447       case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
3448       case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
3449       case DynamicState::eLineStippleEXT : return "LineStippleEXT";
3450       default: return "invalid";
3451     }
3452   }
3453 
3454   enum class Filter
3455   {
3456     eNearest = VK_FILTER_NEAREST,
3457     eLinear = VK_FILTER_LINEAR,
3458     eCubicIMG = VK_FILTER_CUBIC_IMG,
3459     eCubicEXT = VK_FILTER_CUBIC_EXT
3460   };
3461 
to_string(Filter value)3462   VULKAN_HPP_INLINE std::string to_string( Filter value )
3463   {
3464     switch ( value )
3465     {
3466       case Filter::eNearest : return "Nearest";
3467       case Filter::eLinear : return "Linear";
3468       case Filter::eCubicIMG : return "CubicIMG";
3469       default: return "invalid";
3470     }
3471   }
3472 
3473   enum class Format
3474   {
3475     eUndefined = VK_FORMAT_UNDEFINED,
3476     eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
3477     eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
3478     eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
3479     eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
3480     eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
3481     eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
3482     eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
3483     eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
3484     eR8Unorm = VK_FORMAT_R8_UNORM,
3485     eR8Snorm = VK_FORMAT_R8_SNORM,
3486     eR8Uscaled = VK_FORMAT_R8_USCALED,
3487     eR8Sscaled = VK_FORMAT_R8_SSCALED,
3488     eR8Uint = VK_FORMAT_R8_UINT,
3489     eR8Sint = VK_FORMAT_R8_SINT,
3490     eR8Srgb = VK_FORMAT_R8_SRGB,
3491     eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
3492     eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
3493     eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
3494     eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
3495     eR8G8Uint = VK_FORMAT_R8G8_UINT,
3496     eR8G8Sint = VK_FORMAT_R8G8_SINT,
3497     eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
3498     eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
3499     eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
3500     eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
3501     eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
3502     eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
3503     eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
3504     eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
3505     eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
3506     eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
3507     eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
3508     eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
3509     eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
3510     eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
3511     eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
3512     eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
3513     eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
3514     eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
3515     eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
3516     eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
3517     eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
3518     eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
3519     eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
3520     eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
3521     eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
3522     eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
3523     eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
3524     eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
3525     eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
3526     eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
3527     eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
3528     eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
3529     eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
3530     eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
3531     eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
3532     eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
3533     eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
3534     eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
3535     eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
3536     eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
3537     eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
3538     eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
3539     eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
3540     eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
3541     eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
3542     eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
3543     eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
3544     eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
3545     eR16Unorm = VK_FORMAT_R16_UNORM,
3546     eR16Snorm = VK_FORMAT_R16_SNORM,
3547     eR16Uscaled = VK_FORMAT_R16_USCALED,
3548     eR16Sscaled = VK_FORMAT_R16_SSCALED,
3549     eR16Uint = VK_FORMAT_R16_UINT,
3550     eR16Sint = VK_FORMAT_R16_SINT,
3551     eR16Sfloat = VK_FORMAT_R16_SFLOAT,
3552     eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
3553     eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
3554     eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
3555     eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
3556     eR16G16Uint = VK_FORMAT_R16G16_UINT,
3557     eR16G16Sint = VK_FORMAT_R16G16_SINT,
3558     eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
3559     eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
3560     eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
3561     eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
3562     eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
3563     eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
3564     eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
3565     eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
3566     eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
3567     eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
3568     eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
3569     eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
3570     eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
3571     eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
3572     eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
3573     eR32Uint = VK_FORMAT_R32_UINT,
3574     eR32Sint = VK_FORMAT_R32_SINT,
3575     eR32Sfloat = VK_FORMAT_R32_SFLOAT,
3576     eR32G32Uint = VK_FORMAT_R32G32_UINT,
3577     eR32G32Sint = VK_FORMAT_R32G32_SINT,
3578     eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
3579     eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
3580     eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
3581     eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
3582     eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
3583     eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
3584     eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
3585     eR64Uint = VK_FORMAT_R64_UINT,
3586     eR64Sint = VK_FORMAT_R64_SINT,
3587     eR64Sfloat = VK_FORMAT_R64_SFLOAT,
3588     eR64G64Uint = VK_FORMAT_R64G64_UINT,
3589     eR64G64Sint = VK_FORMAT_R64G64_SINT,
3590     eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
3591     eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
3592     eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
3593     eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
3594     eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
3595     eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
3596     eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
3597     eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
3598     eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
3599     eD16Unorm = VK_FORMAT_D16_UNORM,
3600     eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
3601     eD32Sfloat = VK_FORMAT_D32_SFLOAT,
3602     eS8Uint = VK_FORMAT_S8_UINT,
3603     eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
3604     eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
3605     eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
3606     eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
3607     eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
3608     eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
3609     eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
3610     eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
3611     eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
3612     eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
3613     eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
3614     eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
3615     eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
3616     eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
3617     eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
3618     eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
3619     eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
3620     eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
3621     eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
3622     eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
3623     eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
3624     eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
3625     eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
3626     eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
3627     eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
3628     eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
3629     eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
3630     eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
3631     eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
3632     eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
3633     eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
3634     eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
3635     eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
3636     eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
3637     eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
3638     eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
3639     eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
3640     eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
3641     eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
3642     eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
3643     eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
3644     eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
3645     eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
3646     eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
3647     eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
3648     eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
3649     eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
3650     eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
3651     eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
3652     eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
3653     eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
3654     eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
3655     eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
3656     eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
3657     eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
3658     eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
3659     eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
3660     eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
3661     eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
3662     eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
3663     eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
3664     eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
3665     eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
3666     eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
3667     eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
3668     eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
3669     eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
3670     eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
3671     eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
3672     eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
3673     eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
3674     eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
3675     eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
3676     eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
3677     eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
3678     eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
3679     eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
3680     eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
3681     eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
3682     eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
3683     eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
3684     eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
3685     eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
3686     eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
3687     eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
3688     eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
3689     eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
3690     eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
3691     eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
3692     eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
3693     eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
3694     ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
3695     ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
3696     ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
3697     ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
3698     ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
3699     ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
3700     ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
3701     ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
3702     eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
3703     eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
3704     eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
3705     eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
3706     eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
3707     eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
3708     eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
3709     eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
3710     eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
3711     eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
3712     eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
3713     eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
3714     eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
3715     eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
3716     eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
3717     eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
3718     eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
3719     eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
3720     eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
3721     eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
3722     eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
3723     eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
3724     eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
3725     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
3726     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
3727     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
3728     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
3729     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
3730     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
3731     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
3732     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
3733     eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR,
3734     eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
3735     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
3736     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
3737     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
3738     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
3739     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
3740     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
3741     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
3742     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
3743     eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
3744     eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
3745     eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
3746     eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
3747     eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
3748     eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
3749     eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR
3750   };
3751 
to_string(Format value)3752   VULKAN_HPP_INLINE std::string to_string( Format value )
3753   {
3754     switch ( value )
3755     {
3756       case Format::eUndefined : return "Undefined";
3757       case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
3758       case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
3759       case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
3760       case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
3761       case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
3762       case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
3763       case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
3764       case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
3765       case Format::eR8Unorm : return "R8Unorm";
3766       case Format::eR8Snorm : return "R8Snorm";
3767       case Format::eR8Uscaled : return "R8Uscaled";
3768       case Format::eR8Sscaled : return "R8Sscaled";
3769       case Format::eR8Uint : return "R8Uint";
3770       case Format::eR8Sint : return "R8Sint";
3771       case Format::eR8Srgb : return "R8Srgb";
3772       case Format::eR8G8Unorm : return "R8G8Unorm";
3773       case Format::eR8G8Snorm : return "R8G8Snorm";
3774       case Format::eR8G8Uscaled : return "R8G8Uscaled";
3775       case Format::eR8G8Sscaled : return "R8G8Sscaled";
3776       case Format::eR8G8Uint : return "R8G8Uint";
3777       case Format::eR8G8Sint : return "R8G8Sint";
3778       case Format::eR8G8Srgb : return "R8G8Srgb";
3779       case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
3780       case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
3781       case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
3782       case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
3783       case Format::eR8G8B8Uint : return "R8G8B8Uint";
3784       case Format::eR8G8B8Sint : return "R8G8B8Sint";
3785       case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
3786       case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
3787       case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
3788       case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
3789       case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
3790       case Format::eB8G8R8Uint : return "B8G8R8Uint";
3791       case Format::eB8G8R8Sint : return "B8G8R8Sint";
3792       case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
3793       case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
3794       case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
3795       case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
3796       case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
3797       case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
3798       case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
3799       case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
3800       case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
3801       case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
3802       case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
3803       case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
3804       case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
3805       case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
3806       case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
3807       case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
3808       case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
3809       case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
3810       case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
3811       case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
3812       case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
3813       case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
3814       case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
3815       case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
3816       case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
3817       case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
3818       case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
3819       case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
3820       case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
3821       case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
3822       case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
3823       case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
3824       case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
3825       case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
3826       case Format::eR16Unorm : return "R16Unorm";
3827       case Format::eR16Snorm : return "R16Snorm";
3828       case Format::eR16Uscaled : return "R16Uscaled";
3829       case Format::eR16Sscaled : return "R16Sscaled";
3830       case Format::eR16Uint : return "R16Uint";
3831       case Format::eR16Sint : return "R16Sint";
3832       case Format::eR16Sfloat : return "R16Sfloat";
3833       case Format::eR16G16Unorm : return "R16G16Unorm";
3834       case Format::eR16G16Snorm : return "R16G16Snorm";
3835       case Format::eR16G16Uscaled : return "R16G16Uscaled";
3836       case Format::eR16G16Sscaled : return "R16G16Sscaled";
3837       case Format::eR16G16Uint : return "R16G16Uint";
3838       case Format::eR16G16Sint : return "R16G16Sint";
3839       case Format::eR16G16Sfloat : return "R16G16Sfloat";
3840       case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
3841       case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
3842       case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
3843       case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
3844       case Format::eR16G16B16Uint : return "R16G16B16Uint";
3845       case Format::eR16G16B16Sint : return "R16G16B16Sint";
3846       case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
3847       case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
3848       case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
3849       case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
3850       case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
3851       case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
3852       case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
3853       case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
3854       case Format::eR32Uint : return "R32Uint";
3855       case Format::eR32Sint : return "R32Sint";
3856       case Format::eR32Sfloat : return "R32Sfloat";
3857       case Format::eR32G32Uint : return "R32G32Uint";
3858       case Format::eR32G32Sint : return "R32G32Sint";
3859       case Format::eR32G32Sfloat : return "R32G32Sfloat";
3860       case Format::eR32G32B32Uint : return "R32G32B32Uint";
3861       case Format::eR32G32B32Sint : return "R32G32B32Sint";
3862       case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
3863       case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
3864       case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
3865       case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
3866       case Format::eR64Uint : return "R64Uint";
3867       case Format::eR64Sint : return "R64Sint";
3868       case Format::eR64Sfloat : return "R64Sfloat";
3869       case Format::eR64G64Uint : return "R64G64Uint";
3870       case Format::eR64G64Sint : return "R64G64Sint";
3871       case Format::eR64G64Sfloat : return "R64G64Sfloat";
3872       case Format::eR64G64B64Uint : return "R64G64B64Uint";
3873       case Format::eR64G64B64Sint : return "R64G64B64Sint";
3874       case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
3875       case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
3876       case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
3877       case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
3878       case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
3879       case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
3880       case Format::eD16Unorm : return "D16Unorm";
3881       case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
3882       case Format::eD32Sfloat : return "D32Sfloat";
3883       case Format::eS8Uint : return "S8Uint";
3884       case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
3885       case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
3886       case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
3887       case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
3888       case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
3889       case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
3890       case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
3891       case Format::eBc2UnormBlock : return "Bc2UnormBlock";
3892       case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
3893       case Format::eBc3UnormBlock : return "Bc3UnormBlock";
3894       case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
3895       case Format::eBc4UnormBlock : return "Bc4UnormBlock";
3896       case Format::eBc4SnormBlock : return "Bc4SnormBlock";
3897       case Format::eBc5UnormBlock : return "Bc5UnormBlock";
3898       case Format::eBc5SnormBlock : return "Bc5SnormBlock";
3899       case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
3900       case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
3901       case Format::eBc7UnormBlock : return "Bc7UnormBlock";
3902       case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
3903       case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
3904       case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
3905       case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
3906       case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
3907       case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
3908       case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
3909       case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
3910       case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
3911       case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
3912       case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
3913       case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
3914       case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
3915       case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
3916       case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
3917       case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
3918       case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
3919       case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
3920       case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
3921       case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
3922       case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
3923       case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
3924       case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
3925       case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
3926       case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
3927       case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
3928       case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
3929       case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
3930       case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
3931       case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
3932       case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
3933       case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
3934       case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
3935       case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
3936       case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
3937       case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
3938       case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
3939       case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
3940       case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
3941       case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
3942       case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
3943       case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
3944       case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
3945       case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
3946       case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
3947       case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
3948       case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
3949       case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
3950       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
3951       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
3952       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
3953       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
3954       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
3955       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
3956       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
3957       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
3958       case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
3959       case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
3960       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
3961       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
3962       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
3963       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
3964       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
3965       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
3966       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
3967       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
3968       case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
3969       case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
3970       case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
3971       case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
3972       case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
3973       case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
3974       case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
3975       case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
3976       case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
3977       case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
3978       case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
3979       case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
3980       case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
3981       case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
3982       case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
3983       case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT";
3984       case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT";
3985       case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT";
3986       case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT";
3987       case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT";
3988       case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT";
3989       case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT";
3990       case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT";
3991       case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT";
3992       case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT";
3993       case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT";
3994       case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT";
3995       case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT";
3996       case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT";
3997       default: return "invalid";
3998     }
3999   }
4000 
4001   enum class FrontFace
4002   {
4003     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
4004     eClockwise = VK_FRONT_FACE_CLOCKWISE
4005   };
4006 
to_string(FrontFace value)4007   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
4008   {
4009     switch ( value )
4010     {
4011       case FrontFace::eCounterClockwise : return "CounterClockwise";
4012       case FrontFace::eClockwise : return "Clockwise";
4013       default: return "invalid";
4014     }
4015   }
4016 
4017 #ifdef VK_USE_PLATFORM_WIN32_KHR
4018   enum class FullScreenExclusiveEXT
4019   {
4020     eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
4021     eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
4022     eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
4023     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
4024   };
4025 
to_string(FullScreenExclusiveEXT value)4026   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
4027   {
4028     switch ( value )
4029     {
4030       case FullScreenExclusiveEXT::eDefault : return "Default";
4031       case FullScreenExclusiveEXT::eAllowed : return "Allowed";
4032       case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
4033       case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
4034       default: return "invalid";
4035     }
4036   }
4037 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
4038 
4039   enum class GeometryTypeNV
4040   {
4041     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_NV,
4042     eAabbs = VK_GEOMETRY_TYPE_AABBS_NV
4043   };
4044 
to_string(GeometryTypeNV value)4045   VULKAN_HPP_INLINE std::string to_string( GeometryTypeNV value )
4046   {
4047     switch ( value )
4048     {
4049       case GeometryTypeNV::eTriangles : return "Triangles";
4050       case GeometryTypeNV::eAabbs : return "Aabbs";
4051       default: return "invalid";
4052     }
4053   }
4054 
4055   enum class ImageLayout
4056   {
4057     eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
4058     eGeneral = VK_IMAGE_LAYOUT_GENERAL,
4059     eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
4060     eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
4061     eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
4062     eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
4063     eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
4064     eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
4065     ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
4066     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
4067     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
4068     ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
4069     eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
4070     eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
4071     eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
4072     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
4073     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR
4074   };
4075 
to_string(ImageLayout value)4076   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
4077   {
4078     switch ( value )
4079     {
4080       case ImageLayout::eUndefined : return "Undefined";
4081       case ImageLayout::eGeneral : return "General";
4082       case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
4083       case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
4084       case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
4085       case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
4086       case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
4087       case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
4088       case ImageLayout::ePreinitialized : return "Preinitialized";
4089       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
4090       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
4091       case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
4092       case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
4093       case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
4094       case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
4095       default: return "invalid";
4096     }
4097   }
4098 
4099   enum class ImageTiling
4100   {
4101     eOptimal = VK_IMAGE_TILING_OPTIMAL,
4102     eLinear = VK_IMAGE_TILING_LINEAR,
4103     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
4104   };
4105 
to_string(ImageTiling value)4106   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
4107   {
4108     switch ( value )
4109     {
4110       case ImageTiling::eOptimal : return "Optimal";
4111       case ImageTiling::eLinear : return "Linear";
4112       case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
4113       default: return "invalid";
4114     }
4115   }
4116 
4117   enum class ImageType
4118   {
4119     e1D = VK_IMAGE_TYPE_1D,
4120     e2D = VK_IMAGE_TYPE_2D,
4121     e3D = VK_IMAGE_TYPE_3D
4122   };
4123 
to_string(ImageType value)4124   VULKAN_HPP_INLINE std::string to_string( ImageType value )
4125   {
4126     switch ( value )
4127     {
4128       case ImageType::e1D : return "1D";
4129       case ImageType::e2D : return "2D";
4130       case ImageType::e3D : return "3D";
4131       default: return "invalid";
4132     }
4133   }
4134 
4135   enum class ImageViewType
4136   {
4137     e1D = VK_IMAGE_VIEW_TYPE_1D,
4138     e2D = VK_IMAGE_VIEW_TYPE_2D,
4139     e3D = VK_IMAGE_VIEW_TYPE_3D,
4140     eCube = VK_IMAGE_VIEW_TYPE_CUBE,
4141     e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
4142     e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
4143     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
4144   };
4145 
to_string(ImageViewType value)4146   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
4147   {
4148     switch ( value )
4149     {
4150       case ImageViewType::e1D : return "1D";
4151       case ImageViewType::e2D : return "2D";
4152       case ImageViewType::e3D : return "3D";
4153       case ImageViewType::eCube : return "Cube";
4154       case ImageViewType::e1DArray : return "1DArray";
4155       case ImageViewType::e2DArray : return "2DArray";
4156       case ImageViewType::eCubeArray : return "CubeArray";
4157       default: return "invalid";
4158     }
4159   }
4160 
4161   enum class IndexType
4162   {
4163     eUint16 = VK_INDEX_TYPE_UINT16,
4164     eUint32 = VK_INDEX_TYPE_UINT32,
4165     eNoneNV = VK_INDEX_TYPE_NONE_NV,
4166     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT
4167   };
4168 
to_string(IndexType value)4169   VULKAN_HPP_INLINE std::string to_string( IndexType value )
4170   {
4171     switch ( value )
4172     {
4173       case IndexType::eUint16 : return "Uint16";
4174       case IndexType::eUint32 : return "Uint32";
4175       case IndexType::eNoneNV : return "NoneNV";
4176       case IndexType::eUint8EXT : return "Uint8EXT";
4177       default: return "invalid";
4178     }
4179   }
4180 
4181   enum class IndirectCommandsTokenTypeNVX
4182   {
4183     ePipeline = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
4184     eDescriptorSet = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX,
4185     eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX,
4186     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX,
4187     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX,
4188     eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX,
4189     eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX,
4190     eDispatch = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX
4191   };
4192 
to_string(IndirectCommandsTokenTypeNVX value)4193   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNVX value )
4194   {
4195     switch ( value )
4196     {
4197       case IndirectCommandsTokenTypeNVX::ePipeline : return "Pipeline";
4198       case IndirectCommandsTokenTypeNVX::eDescriptorSet : return "DescriptorSet";
4199       case IndirectCommandsTokenTypeNVX::eIndexBuffer : return "IndexBuffer";
4200       case IndirectCommandsTokenTypeNVX::eVertexBuffer : return "VertexBuffer";
4201       case IndirectCommandsTokenTypeNVX::ePushConstant : return "PushConstant";
4202       case IndirectCommandsTokenTypeNVX::eDrawIndexed : return "DrawIndexed";
4203       case IndirectCommandsTokenTypeNVX::eDraw : return "Draw";
4204       case IndirectCommandsTokenTypeNVX::eDispatch : return "Dispatch";
4205       default: return "invalid";
4206     }
4207   }
4208 
4209   enum class InternalAllocationType
4210   {
4211     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
4212   };
4213 
to_string(InternalAllocationType value)4214   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
4215   {
4216     switch ( value )
4217     {
4218       case InternalAllocationType::eExecutable : return "Executable";
4219       default: return "invalid";
4220     }
4221   }
4222 
4223   enum class LineRasterizationModeEXT
4224   {
4225     eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
4226     eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
4227     eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
4228     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
4229   };
4230 
to_string(LineRasterizationModeEXT value)4231   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
4232   {
4233     switch ( value )
4234     {
4235       case LineRasterizationModeEXT::eDefault : return "Default";
4236       case LineRasterizationModeEXT::eRectangular : return "Rectangular";
4237       case LineRasterizationModeEXT::eBresenham : return "Bresenham";
4238       case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth";
4239       default: return "invalid";
4240     }
4241   }
4242 
4243   enum class LogicOp
4244   {
4245     eClear = VK_LOGIC_OP_CLEAR,
4246     eAnd = VK_LOGIC_OP_AND,
4247     eAndReverse = VK_LOGIC_OP_AND_REVERSE,
4248     eCopy = VK_LOGIC_OP_COPY,
4249     eAndInverted = VK_LOGIC_OP_AND_INVERTED,
4250     eNoOp = VK_LOGIC_OP_NO_OP,
4251     eXor = VK_LOGIC_OP_XOR,
4252     eOr = VK_LOGIC_OP_OR,
4253     eNor = VK_LOGIC_OP_NOR,
4254     eEquivalent = VK_LOGIC_OP_EQUIVALENT,
4255     eInvert = VK_LOGIC_OP_INVERT,
4256     eOrReverse = VK_LOGIC_OP_OR_REVERSE,
4257     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
4258     eOrInverted = VK_LOGIC_OP_OR_INVERTED,
4259     eNand = VK_LOGIC_OP_NAND,
4260     eSet = VK_LOGIC_OP_SET
4261   };
4262 
to_string(LogicOp value)4263   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
4264   {
4265     switch ( value )
4266     {
4267       case LogicOp::eClear : return "Clear";
4268       case LogicOp::eAnd : return "And";
4269       case LogicOp::eAndReverse : return "AndReverse";
4270       case LogicOp::eCopy : return "Copy";
4271       case LogicOp::eAndInverted : return "AndInverted";
4272       case LogicOp::eNoOp : return "NoOp";
4273       case LogicOp::eXor : return "Xor";
4274       case LogicOp::eOr : return "Or";
4275       case LogicOp::eNor : return "Nor";
4276       case LogicOp::eEquivalent : return "Equivalent";
4277       case LogicOp::eInvert : return "Invert";
4278       case LogicOp::eOrReverse : return "OrReverse";
4279       case LogicOp::eCopyInverted : return "CopyInverted";
4280       case LogicOp::eOrInverted : return "OrInverted";
4281       case LogicOp::eNand : return "Nand";
4282       case LogicOp::eSet : return "Set";
4283       default: return "invalid";
4284     }
4285   }
4286 
4287   enum class MemoryOverallocationBehaviorAMD
4288   {
4289     eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
4290     eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
4291     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
4292   };
4293 
to_string(MemoryOverallocationBehaviorAMD value)4294   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
4295   {
4296     switch ( value )
4297     {
4298       case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
4299       case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
4300       case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
4301       default: return "invalid";
4302     }
4303   }
4304 
4305   enum class ObjectEntryTypeNVX
4306   {
4307     eDescriptorSet = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
4308     ePipeline = VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX,
4309     eIndexBuffer = VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX,
4310     eVertexBuffer = VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX,
4311     ePushConstant = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX
4312   };
4313 
to_string(ObjectEntryTypeNVX value)4314   VULKAN_HPP_INLINE std::string to_string( ObjectEntryTypeNVX value )
4315   {
4316     switch ( value )
4317     {
4318       case ObjectEntryTypeNVX::eDescriptorSet : return "DescriptorSet";
4319       case ObjectEntryTypeNVX::ePipeline : return "Pipeline";
4320       case ObjectEntryTypeNVX::eIndexBuffer : return "IndexBuffer";
4321       case ObjectEntryTypeNVX::eVertexBuffer : return "VertexBuffer";
4322       case ObjectEntryTypeNVX::ePushConstant : return "PushConstant";
4323       default: return "invalid";
4324     }
4325   }
4326 
4327   enum class ObjectType
4328   {
4329     eUnknown = VK_OBJECT_TYPE_UNKNOWN,
4330     eInstance = VK_OBJECT_TYPE_INSTANCE,
4331     ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
4332     eDevice = VK_OBJECT_TYPE_DEVICE,
4333     eQueue = VK_OBJECT_TYPE_QUEUE,
4334     eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
4335     eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
4336     eFence = VK_OBJECT_TYPE_FENCE,
4337     eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
4338     eBuffer = VK_OBJECT_TYPE_BUFFER,
4339     eImage = VK_OBJECT_TYPE_IMAGE,
4340     eEvent = VK_OBJECT_TYPE_EVENT,
4341     eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
4342     eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
4343     eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
4344     eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
4345     ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
4346     ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
4347     eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
4348     ePipeline = VK_OBJECT_TYPE_PIPELINE,
4349     eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
4350     eSampler = VK_OBJECT_TYPE_SAMPLER,
4351     eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
4352     eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
4353     eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
4354     eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
4355     eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
4356     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
4357     eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
4358     eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
4359     eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
4360     eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
4361     eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
4362     eObjectTableNVX = VK_OBJECT_TYPE_OBJECT_TABLE_NVX,
4363     eIndirectCommandsLayoutNVX = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX,
4364     eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
4365     eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
4366     eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
4367     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
4368     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
4369     eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
4370   };
4371 
to_string(ObjectType value)4372   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
4373   {
4374     switch ( value )
4375     {
4376       case ObjectType::eUnknown : return "Unknown";
4377       case ObjectType::eInstance : return "Instance";
4378       case ObjectType::ePhysicalDevice : return "PhysicalDevice";
4379       case ObjectType::eDevice : return "Device";
4380       case ObjectType::eQueue : return "Queue";
4381       case ObjectType::eSemaphore : return "Semaphore";
4382       case ObjectType::eCommandBuffer : return "CommandBuffer";
4383       case ObjectType::eFence : return "Fence";
4384       case ObjectType::eDeviceMemory : return "DeviceMemory";
4385       case ObjectType::eBuffer : return "Buffer";
4386       case ObjectType::eImage : return "Image";
4387       case ObjectType::eEvent : return "Event";
4388       case ObjectType::eQueryPool : return "QueryPool";
4389       case ObjectType::eBufferView : return "BufferView";
4390       case ObjectType::eImageView : return "ImageView";
4391       case ObjectType::eShaderModule : return "ShaderModule";
4392       case ObjectType::ePipelineCache : return "PipelineCache";
4393       case ObjectType::ePipelineLayout : return "PipelineLayout";
4394       case ObjectType::eRenderPass : return "RenderPass";
4395       case ObjectType::ePipeline : return "Pipeline";
4396       case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
4397       case ObjectType::eSampler : return "Sampler";
4398       case ObjectType::eDescriptorPool : return "DescriptorPool";
4399       case ObjectType::eDescriptorSet : return "DescriptorSet";
4400       case ObjectType::eFramebuffer : return "Framebuffer";
4401       case ObjectType::eCommandPool : return "CommandPool";
4402       case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
4403       case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
4404       case ObjectType::eSurfaceKHR : return "SurfaceKHR";
4405       case ObjectType::eSwapchainKHR : return "SwapchainKHR";
4406       case ObjectType::eDisplayKHR : return "DisplayKHR";
4407       case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
4408       case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
4409       case ObjectType::eObjectTableNVX : return "ObjectTableNVX";
4410       case ObjectType::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX";
4411       case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
4412       case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
4413       case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV";
4414       case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
4415       default: return "invalid";
4416     }
4417   }
4418 
4419   enum class PerformanceConfigurationTypeINTEL
4420   {
4421     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
4422   };
4423 
to_string(PerformanceConfigurationTypeINTEL value)4424   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
4425   {
4426     switch ( value )
4427     {
4428       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
4429       default: return "invalid";
4430     }
4431   }
4432 
4433   enum class PerformanceOverrideTypeINTEL
4434   {
4435     eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
4436     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
4437   };
4438 
to_string(PerformanceOverrideTypeINTEL value)4439   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
4440   {
4441     switch ( value )
4442     {
4443       case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
4444       case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
4445       default: return "invalid";
4446     }
4447   }
4448 
4449   enum class PerformanceParameterTypeINTEL
4450   {
4451     eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
4452     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
4453   };
4454 
to_string(PerformanceParameterTypeINTEL value)4455   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
4456   {
4457     switch ( value )
4458     {
4459       case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
4460       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
4461       default: return "invalid";
4462     }
4463   }
4464 
4465   enum class PerformanceValueTypeINTEL
4466   {
4467     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
4468     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
4469     eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
4470     eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
4471     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
4472   };
4473 
to_string(PerformanceValueTypeINTEL value)4474   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
4475   {
4476     switch ( value )
4477     {
4478       case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
4479       case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
4480       case PerformanceValueTypeINTEL::eFloat : return "Float";
4481       case PerformanceValueTypeINTEL::eBool : return "Bool";
4482       case PerformanceValueTypeINTEL::eString : return "String";
4483       default: return "invalid";
4484     }
4485   }
4486 
4487   enum class PhysicalDeviceType
4488   {
4489     eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
4490     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
4491     eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
4492     eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
4493     eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
4494   };
4495 
to_string(PhysicalDeviceType value)4496   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
4497   {
4498     switch ( value )
4499     {
4500       case PhysicalDeviceType::eOther : return "Other";
4501       case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
4502       case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
4503       case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
4504       case PhysicalDeviceType::eCpu : return "Cpu";
4505       default: return "invalid";
4506     }
4507   }
4508 
4509   enum class PipelineBindPoint
4510   {
4511     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
4512     eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
4513     eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
4514   };
4515 
to_string(PipelineBindPoint value)4516   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
4517   {
4518     switch ( value )
4519     {
4520       case PipelineBindPoint::eGraphics : return "Graphics";
4521       case PipelineBindPoint::eCompute : return "Compute";
4522       case PipelineBindPoint::eRayTracingNV : return "RayTracingNV";
4523       default: return "invalid";
4524     }
4525   }
4526 
4527   enum class PipelineCacheHeaderVersion
4528   {
4529     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
4530   };
4531 
to_string(PipelineCacheHeaderVersion value)4532   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
4533   {
4534     switch ( value )
4535     {
4536       case PipelineCacheHeaderVersion::eOne : return "One";
4537       default: return "invalid";
4538     }
4539   }
4540 
4541   enum class PipelineExecutableStatisticFormatKHR
4542   {
4543     eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
4544     eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
4545     eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
4546     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
4547   };
4548 
to_string(PipelineExecutableStatisticFormatKHR value)4549   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
4550   {
4551     switch ( value )
4552     {
4553       case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32";
4554       case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64";
4555       case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64";
4556       case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64";
4557       default: return "invalid";
4558     }
4559   }
4560 
4561   enum class PointClippingBehavior
4562   {
4563     eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4564     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4565     eAllClipPlanesKHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR,
4566     eUserClipPlanesOnlyKHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR
4567   };
4568 
to_string(PointClippingBehavior value)4569   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
4570   {
4571     switch ( value )
4572     {
4573       case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
4574       case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
4575       default: return "invalid";
4576     }
4577   }
4578 
4579   enum class PolygonMode
4580   {
4581     eFill = VK_POLYGON_MODE_FILL,
4582     eLine = VK_POLYGON_MODE_LINE,
4583     ePoint = VK_POLYGON_MODE_POINT,
4584     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
4585   };
4586 
to_string(PolygonMode value)4587   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
4588   {
4589     switch ( value )
4590     {
4591       case PolygonMode::eFill : return "Fill";
4592       case PolygonMode::eLine : return "Line";
4593       case PolygonMode::ePoint : return "Point";
4594       case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
4595       default: return "invalid";
4596     }
4597   }
4598 
4599   enum class PresentModeKHR
4600   {
4601     eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
4602     eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
4603     eFifo = VK_PRESENT_MODE_FIFO_KHR,
4604     eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
4605     eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
4606     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
4607   };
4608 
to_string(PresentModeKHR value)4609   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
4610   {
4611     switch ( value )
4612     {
4613       case PresentModeKHR::eImmediate : return "Immediate";
4614       case PresentModeKHR::eMailbox : return "Mailbox";
4615       case PresentModeKHR::eFifo : return "Fifo";
4616       case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
4617       case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
4618       case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
4619       default: return "invalid";
4620     }
4621   }
4622 
4623   enum class PrimitiveTopology
4624   {
4625     ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
4626     eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
4627     eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
4628     eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
4629     eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
4630     eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
4631     eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
4632     eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
4633     eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
4634     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
4635     ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
4636   };
4637 
to_string(PrimitiveTopology value)4638   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
4639   {
4640     switch ( value )
4641     {
4642       case PrimitiveTopology::ePointList : return "PointList";
4643       case PrimitiveTopology::eLineList : return "LineList";
4644       case PrimitiveTopology::eLineStrip : return "LineStrip";
4645       case PrimitiveTopology::eTriangleList : return "TriangleList";
4646       case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
4647       case PrimitiveTopology::eTriangleFan : return "TriangleFan";
4648       case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
4649       case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
4650       case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
4651       case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
4652       case PrimitiveTopology::ePatchList : return "PatchList";
4653       default: return "invalid";
4654     }
4655   }
4656 
4657   enum class QueryPoolSamplingModeINTEL
4658   {
4659     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
4660   };
4661 
to_string(QueryPoolSamplingModeINTEL value)4662   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
4663   {
4664     switch ( value )
4665     {
4666       case QueryPoolSamplingModeINTEL::eManual : return "Manual";
4667       default: return "invalid";
4668     }
4669   }
4670 
4671   enum class QueryType
4672   {
4673     eOcclusion = VK_QUERY_TYPE_OCCLUSION,
4674     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
4675     eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
4676     eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
4677     eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
4678     ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
4679   };
4680 
to_string(QueryType value)4681   VULKAN_HPP_INLINE std::string to_string( QueryType value )
4682   {
4683     switch ( value )
4684     {
4685       case QueryType::eOcclusion : return "Occlusion";
4686       case QueryType::ePipelineStatistics : return "PipelineStatistics";
4687       case QueryType::eTimestamp : return "Timestamp";
4688       case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
4689       case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV";
4690       case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
4691       default: return "invalid";
4692     }
4693   }
4694 
4695   enum class QueueGlobalPriorityEXT
4696   {
4697     eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
4698     eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
4699     eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
4700     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
4701   };
4702 
to_string(QueueGlobalPriorityEXT value)4703   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
4704   {
4705     switch ( value )
4706     {
4707       case QueueGlobalPriorityEXT::eLow : return "Low";
4708       case QueueGlobalPriorityEXT::eMedium : return "Medium";
4709       case QueueGlobalPriorityEXT::eHigh : return "High";
4710       case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
4711       default: return "invalid";
4712     }
4713   }
4714 
4715   enum class RasterizationOrderAMD
4716   {
4717     eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
4718     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
4719   };
4720 
to_string(RasterizationOrderAMD value)4721   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
4722   {
4723     switch ( value )
4724     {
4725       case RasterizationOrderAMD::eStrict : return "Strict";
4726       case RasterizationOrderAMD::eRelaxed : return "Relaxed";
4727       default: return "invalid";
4728     }
4729   }
4730 
4731   enum class RayTracingShaderGroupTypeNV
4732   {
4733     eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
4734     eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV,
4735     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV
4736   };
4737 
to_string(RayTracingShaderGroupTypeNV value)4738   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeNV value )
4739   {
4740     switch ( value )
4741     {
4742       case RayTracingShaderGroupTypeNV::eGeneral : return "General";
4743       case RayTracingShaderGroupTypeNV::eTrianglesHitGroup : return "TrianglesHitGroup";
4744       case RayTracingShaderGroupTypeNV::eProceduralHitGroup : return "ProceduralHitGroup";
4745       default: return "invalid";
4746     }
4747   }
4748 
4749   enum class Result
4750   {
4751     eSuccess = VK_SUCCESS,
4752     eNotReady = VK_NOT_READY,
4753     eTimeout = VK_TIMEOUT,
4754     eEventSet = VK_EVENT_SET,
4755     eEventReset = VK_EVENT_RESET,
4756     eIncomplete = VK_INCOMPLETE,
4757     eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
4758     eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
4759     eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
4760     eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
4761     eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
4762     eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
4763     eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
4764     eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
4765     eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
4766     eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
4767     eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
4768     eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
4769     eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
4770     eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
4771     eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
4772     eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
4773     eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
4774     eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
4775     eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
4776     eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
4777     eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
4778     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
4779     eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
4780     eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
4781     eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
4782     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
4783     eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
4784     eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR
4785   };
4786 
to_string(Result value)4787   VULKAN_HPP_INLINE std::string to_string( Result value )
4788   {
4789     switch ( value )
4790     {
4791       case Result::eSuccess : return "Success";
4792       case Result::eNotReady : return "NotReady";
4793       case Result::eTimeout : return "Timeout";
4794       case Result::eEventSet : return "EventSet";
4795       case Result::eEventReset : return "EventReset";
4796       case Result::eIncomplete : return "Incomplete";
4797       case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
4798       case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
4799       case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
4800       case Result::eErrorDeviceLost : return "ErrorDeviceLost";
4801       case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
4802       case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
4803       case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
4804       case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
4805       case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
4806       case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
4807       case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
4808       case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
4809       case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
4810       case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
4811       case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
4812       case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
4813       case Result::eSuboptimalKHR : return "SuboptimalKHR";
4814       case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
4815       case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
4816       case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
4817       case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
4818       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
4819       case Result::eErrorFragmentationEXT : return "ErrorFragmentationEXT";
4820       case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
4821       case Result::eErrorInvalidDeviceAddressEXT : return "ErrorInvalidDeviceAddressEXT";
4822       case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
4823       default: return "invalid";
4824     }
4825   }
4826 
4827   enum class SamplerAddressMode
4828   {
4829     eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
4830     eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
4831     eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
4832     eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
4833     eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
4834     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
4835   };
4836 
to_string(SamplerAddressMode value)4837   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
4838   {
4839     switch ( value )
4840     {
4841       case SamplerAddressMode::eRepeat : return "Repeat";
4842       case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
4843       case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
4844       case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
4845       case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
4846       default: return "invalid";
4847     }
4848   }
4849 
4850   enum class SamplerMipmapMode
4851   {
4852     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
4853     eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
4854   };
4855 
to_string(SamplerMipmapMode value)4856   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
4857   {
4858     switch ( value )
4859     {
4860       case SamplerMipmapMode::eNearest : return "Nearest";
4861       case SamplerMipmapMode::eLinear : return "Linear";
4862       default: return "invalid";
4863     }
4864   }
4865 
4866   enum class SamplerReductionModeEXT
4867   {
4868     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
4869     eMin = VK_SAMPLER_REDUCTION_MODE_MIN_EXT,
4870     eMax = VK_SAMPLER_REDUCTION_MODE_MAX_EXT
4871   };
4872 
to_string(SamplerReductionModeEXT value)4873   VULKAN_HPP_INLINE std::string to_string( SamplerReductionModeEXT value )
4874   {
4875     switch ( value )
4876     {
4877       case SamplerReductionModeEXT::eWeightedAverage : return "WeightedAverage";
4878       case SamplerReductionModeEXT::eMin : return "Min";
4879       case SamplerReductionModeEXT::eMax : return "Max";
4880       default: return "invalid";
4881     }
4882   }
4883 
4884   enum class SamplerYcbcrModelConversion
4885   {
4886     eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4887     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4888     eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4889     eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4890     eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4891     eRgbIdentityKHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR,
4892     eYcbcrIdentityKHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR,
4893     eYcbcr709KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR,
4894     eYcbcr601KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR,
4895     eYcbcr2020KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR
4896   };
4897 
to_string(SamplerYcbcrModelConversion value)4898   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
4899   {
4900     switch ( value )
4901     {
4902       case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
4903       case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
4904       case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
4905       case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
4906       case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
4907       default: return "invalid";
4908     }
4909   }
4910 
4911   enum class SamplerYcbcrRange
4912   {
4913     eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4914     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4915     eItuFullKHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR,
4916     eItuNarrowKHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR
4917   };
4918 
to_string(SamplerYcbcrRange value)4919   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
4920   {
4921     switch ( value )
4922     {
4923       case SamplerYcbcrRange::eItuFull : return "ItuFull";
4924       case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
4925       default: return "invalid";
4926     }
4927   }
4928 
4929   enum class ScopeNV
4930   {
4931     eDevice = VK_SCOPE_DEVICE_NV,
4932     eWorkgroup = VK_SCOPE_WORKGROUP_NV,
4933     eSubgroup = VK_SCOPE_SUBGROUP_NV,
4934     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
4935   };
4936 
to_string(ScopeNV value)4937   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
4938   {
4939     switch ( value )
4940     {
4941       case ScopeNV::eDevice : return "Device";
4942       case ScopeNV::eWorkgroup : return "Workgroup";
4943       case ScopeNV::eSubgroup : return "Subgroup";
4944       case ScopeNV::eQueueFamily : return "QueueFamily";
4945       default: return "invalid";
4946     }
4947   }
4948 
4949   enum class ShaderFloatControlsIndependenceKHR
4950   {
4951     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR,
4952     eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR,
4953     eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR
4954   };
4955 
to_string(ShaderFloatControlsIndependenceKHR value)4956   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependenceKHR value )
4957   {
4958     switch ( value )
4959     {
4960       case ShaderFloatControlsIndependenceKHR::e32BitOnly : return "32BitOnly";
4961       case ShaderFloatControlsIndependenceKHR::eAll : return "All";
4962       case ShaderFloatControlsIndependenceKHR::eNone : return "None";
4963       default: return "invalid";
4964     }
4965   }
4966 
4967   enum class ShaderInfoTypeAMD
4968   {
4969     eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
4970     eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
4971     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
4972   };
4973 
to_string(ShaderInfoTypeAMD value)4974   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
4975   {
4976     switch ( value )
4977     {
4978       case ShaderInfoTypeAMD::eStatistics : return "Statistics";
4979       case ShaderInfoTypeAMD::eBinary : return "Binary";
4980       case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
4981       default: return "invalid";
4982     }
4983   }
4984 
4985   enum class ShadingRatePaletteEntryNV
4986   {
4987     eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
4988     e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
4989     e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
4990     e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
4991     e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
4992     e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
4993     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
4994     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
4995     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
4996     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
4997     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
4998     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
4999   };
5000 
to_string(ShadingRatePaletteEntryNV value)5001   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
5002   {
5003     switch ( value )
5004     {
5005       case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
5006       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
5007       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
5008       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
5009       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
5010       case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
5011       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
5012       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
5013       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
5014       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
5015       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
5016       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
5017       default: return "invalid";
5018     }
5019   }
5020 
5021   enum class SharingMode
5022   {
5023     eExclusive = VK_SHARING_MODE_EXCLUSIVE,
5024     eConcurrent = VK_SHARING_MODE_CONCURRENT
5025   };
5026 
to_string(SharingMode value)5027   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
5028   {
5029     switch ( value )
5030     {
5031       case SharingMode::eExclusive : return "Exclusive";
5032       case SharingMode::eConcurrent : return "Concurrent";
5033       default: return "invalid";
5034     }
5035   }
5036 
5037   enum class StencilOp
5038   {
5039     eKeep = VK_STENCIL_OP_KEEP,
5040     eZero = VK_STENCIL_OP_ZERO,
5041     eReplace = VK_STENCIL_OP_REPLACE,
5042     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
5043     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
5044     eInvert = VK_STENCIL_OP_INVERT,
5045     eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
5046     eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
5047   };
5048 
to_string(StencilOp value)5049   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
5050   {
5051     switch ( value )
5052     {
5053       case StencilOp::eKeep : return "Keep";
5054       case StencilOp::eZero : return "Zero";
5055       case StencilOp::eReplace : return "Replace";
5056       case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
5057       case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
5058       case StencilOp::eInvert : return "Invert";
5059       case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
5060       case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
5061       default: return "invalid";
5062     }
5063   }
5064 
5065   enum class StructureType
5066   {
5067     eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
5068     eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
5069     eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
5070     eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
5071     eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
5072     eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
5073     eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
5074     eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
5075     eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
5076     eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
5077     eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
5078     eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
5079     eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
5080     eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
5081     eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
5082     eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
5083     eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
5084     ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
5085     ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
5086     ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
5087     ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
5088     ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
5089     ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
5090     ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
5091     ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
5092     ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
5093     ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
5094     ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
5095     eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
5096     eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
5097     ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
5098     eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
5099     eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
5100     eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
5101     eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
5102     eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
5103     eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
5104     eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
5105     eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
5106     eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
5107     eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
5108     eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
5109     eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
5110     eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
5111     eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
5112     eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
5113     eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
5114     eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
5115     eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
5116     ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
5117     eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
5118     eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
5119     ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
5120     eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
5121     eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
5122     eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
5123     eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
5124     eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
5125     eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
5126     eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
5127     eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
5128     eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
5129     ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
5130     eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
5131     eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
5132     eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
5133     eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
5134     eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
5135     eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
5136     ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
5137     ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
5138     eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
5139     eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
5140     ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
5141     eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
5142     ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
5143     eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
5144     ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
5145     ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
5146     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
5147     eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
5148     ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
5149     eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
5150     ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
5151     ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
5152     ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
5153     eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
5154     ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
5155     ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
5156     eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
5157     eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
5158     eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
5159     eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
5160     eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
5161     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
5162     eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
5163     eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
5164     ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
5165     eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
5166     ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
5167     eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
5168     ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
5169     eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
5170     eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
5171     eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
5172     ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
5173     eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
5174     eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
5175     eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
5176     ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
5177     eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
5178     ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
5179     eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
5180     ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
5181     eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
5182     ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
5183     eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
5184     eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
5185     eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
5186     eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
5187     eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
5188     eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
5189     eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
5190     eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
5191     eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
5192     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
5193     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
5194     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
5195     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
5196     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
5197     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
5198     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
5199     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
5200     eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
5201     eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
5202     eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
5203     eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
5204     eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
5205     ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
5206     ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
5207     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
5208     eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
5209     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
5210     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
5211     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
5212     eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
5213     eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
5214     eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
5215     eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
5216     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
5217     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
5218     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
5219     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
5220     eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
5221     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
5222     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
5223     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
5224     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
5225     eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
5226     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
5227     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
5228     eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
5229     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
5230     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
5231     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
5232     eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
5233     eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
5234     eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
5235     eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
5236     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
5237     eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
5238     ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
5239     eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
5240     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
5241     ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
5242     eObjectTableCreateInfoNVX = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX,
5243     eIndirectCommandsLayoutCreateInfoNVX = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX,
5244     eCmdProcessCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX,
5245     eCmdReserveSpaceForCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX,
5246     eDeviceGeneratedCommandsLimitsNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX,
5247     eDeviceGeneratedCommandsFeaturesNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX,
5248     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
5249     eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
5250     eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
5251     eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
5252     eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
5253     eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
5254     ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
5255     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
5256     ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
5257     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
5258     ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
5259     ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
5260     ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
5261     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
5262     ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
5263     eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
5264     ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
5265     eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
5266     eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
5267     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
5268     eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
5269     eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
5270     eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
5271     eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
5272     eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
5273     eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
5274     eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
5275     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
5276     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
5277     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
5278     eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
5279     eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
5280     eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
5281     ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
5282     eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
5283     eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
5284     eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
5285     eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
5286     eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
5287     eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
5288     eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
5289     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
5290     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
5291     eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
5292     eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
5293     eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
5294     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
5295     eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
5296     eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
5297     eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
5298     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
5299     eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
5300     eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
5301     eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
5302     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
5303     eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
5304     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
5305     ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
5306     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
5307     eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
5308     eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
5309     eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
5310     ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
5311     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
5312     eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
5313     eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
5314     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
5315     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
5316     ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
5317     ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
5318     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
5319     ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
5320     ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
5321     eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
5322     eDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
5323     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
5324     eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
5325     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
5326     eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
5327     eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
5328     eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
5329     eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
5330     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
5331     ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
5332     eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
5333     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
5334     ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
5335     ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
5336     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
5337     ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
5338     eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
5339     eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
5340     eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
5341     eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
5342     eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
5343     eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
5344     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
5345     eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
5346     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
5347     eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
5348     eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
5349     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
5350     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
5351     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
5352     eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
5353     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
5354     ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
5355     eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
5356     eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
5357     ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
5358     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
5359     ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
5360     eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
5361     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
5362     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
5363     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
5364     ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
5365     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
5366     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
5367     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
5368     ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
5369     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
5370     ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
5371     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
5372     ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
5373     ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
5374     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
5375     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
5376     ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
5377     ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
5378     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
5379     eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
5380     eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
5381     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
5382     eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
5383     eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
5384     ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
5385     ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
5386     ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
5387     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
5388     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
5389     ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
5390     eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
5391     eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
5392     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
5393     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
5394     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
5395     ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
5396     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
5397     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
5398     ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
5399     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
5400     ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
5401     ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
5402     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
5403     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
5404     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
5405     eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
5406     eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
5407     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
5408     ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
5409     eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
5410     eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
5411     eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
5412     eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
5413     ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
5414     eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
5415     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
5416     ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
5417     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
5418     eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
5419     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
5420     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
5421     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
5422     eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
5423     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
5424     eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
5425     eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
5426     ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
5427     ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
5428     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
5429     ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
5430     ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
5431     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
5432     ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
5433     ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
5434     ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
5435     ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
5436     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
5437     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
5438     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
5439     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
5440     ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
5441     ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
5442     eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
5443     eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
5444     ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
5445     ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
5446     ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
5447     ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
5448     eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
5449     eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
5450     ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
5451     eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
5452     ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
5453     eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
5454     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
5455     eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
5456     eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
5457     eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
5458     eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
5459     eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
5460     eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
5461     eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
5462     ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
5463     eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
5464     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
5465     eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
5466     ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
5467     eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
5468     ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
5469     eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
5470     eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
5471     eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
5472     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
5473     eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
5474     eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
5475     ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
5476     ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
5477     eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
5478     ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
5479     eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
5480     eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
5481     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
5482     eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
5483     eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
5484     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
5485     ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
5486     ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
5487     eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
5488     eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
5489     eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
5490     eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
5491     eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
5492     eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
5493     eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
5494     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
5495     eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
5496     eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
5497     eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
5498     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
5499     eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
5500     eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
5501     eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
5502     ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
5503     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
5504     ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
5505   };
5506 
to_string(StructureType value)5507   VULKAN_HPP_INLINE std::string to_string( StructureType value )
5508   {
5509     switch ( value )
5510     {
5511       case StructureType::eApplicationInfo : return "ApplicationInfo";
5512       case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
5513       case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
5514       case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
5515       case StructureType::eSubmitInfo : return "SubmitInfo";
5516       case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
5517       case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
5518       case StructureType::eBindSparseInfo : return "BindSparseInfo";
5519       case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
5520       case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
5521       case StructureType::eEventCreateInfo : return "EventCreateInfo";
5522       case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
5523       case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
5524       case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
5525       case StructureType::eImageCreateInfo : return "ImageCreateInfo";
5526       case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
5527       case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
5528       case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
5529       case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
5530       case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
5531       case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
5532       case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
5533       case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
5534       case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
5535       case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
5536       case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
5537       case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
5538       case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
5539       case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
5540       case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
5541       case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
5542       case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
5543       case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
5544       case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
5545       case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
5546       case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
5547       case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
5548       case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
5549       case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
5550       case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
5551       case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
5552       case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
5553       case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
5554       case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
5555       case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
5556       case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
5557       case StructureType::eMemoryBarrier : return "MemoryBarrier";
5558       case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
5559       case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
5560       case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
5561       case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
5562       case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
5563       case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
5564       case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
5565       case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
5566       case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
5567       case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
5568       case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
5569       case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
5570       case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
5571       case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
5572       case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
5573       case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
5574       case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
5575       case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
5576       case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
5577       case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
5578       case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
5579       case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
5580       case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
5581       case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
5582       case StructureType::eFormatProperties2 : return "FormatProperties2";
5583       case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
5584       case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
5585       case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
5586       case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
5587       case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
5588       case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
5589       case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
5590       case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
5591       case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
5592       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
5593       case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
5594       case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
5595       case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
5596       case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
5597       case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
5598       case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
5599       case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
5600       case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
5601       case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
5602       case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
5603       case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
5604       case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
5605       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
5606       case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
5607       case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
5608       case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
5609       case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
5610       case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
5611       case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
5612       case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
5613       case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
5614       case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
5615       case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
5616       case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
5617       case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
5618       case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
5619       case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
5620       case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
5621       case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
5622       case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
5623       case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
5624       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
5625       case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
5626       case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
5627       case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
5628       case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
5629       case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
5630       case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
5631       case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
5632       case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
5633       case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
5634       case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
5635       case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
5636       case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
5637       case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
5638       case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
5639       case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
5640       case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
5641       case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
5642       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
5643       case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
5644       case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
5645       case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
5646       case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
5647       case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
5648       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
5649       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
5650       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
5651       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
5652       case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
5653       case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
5654       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
5655       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
5656       case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
5657       case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
5658       case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
5659       case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
5660       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
5661       case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
5662       case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
5663       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
5664       case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
5665       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
5666       case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
5667       case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
5668       case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
5669       case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
5670       case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
5671       case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
5672       case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
5673       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
5674       case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
5675       case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
5676       case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
5677       case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
5678       case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
5679       case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
5680       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
5681       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
5682       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
5683       case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
5684       case StructureType::ePhysicalDeviceShaderFloat16Int8FeaturesKHR : return "PhysicalDeviceShaderFloat16Int8FeaturesKHR";
5685       case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
5686       case StructureType::eObjectTableCreateInfoNVX : return "ObjectTableCreateInfoNVX";
5687       case StructureType::eIndirectCommandsLayoutCreateInfoNVX : return "IndirectCommandsLayoutCreateInfoNVX";
5688       case StructureType::eCmdProcessCommandsInfoNVX : return "CmdProcessCommandsInfoNVX";
5689       case StructureType::eCmdReserveSpaceForCommandsInfoNVX : return "CmdReserveSpaceForCommandsInfoNVX";
5690       case StructureType::eDeviceGeneratedCommandsLimitsNVX : return "DeviceGeneratedCommandsLimitsNVX";
5691       case StructureType::eDeviceGeneratedCommandsFeaturesNVX : return "DeviceGeneratedCommandsFeaturesNVX";
5692       case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
5693       case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
5694       case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
5695       case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
5696       case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
5697       case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
5698       case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
5699       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
5700       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
5701       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
5702       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
5703       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
5704       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
5705       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
5706       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
5707       case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
5708       case StructureType::ePhysicalDeviceImagelessFramebufferFeaturesKHR : return "PhysicalDeviceImagelessFramebufferFeaturesKHR";
5709       case StructureType::eFramebufferAttachmentsCreateInfoKHR : return "FramebufferAttachmentsCreateInfoKHR";
5710       case StructureType::eFramebufferAttachmentImageInfoKHR : return "FramebufferAttachmentImageInfoKHR";
5711       case StructureType::eRenderPassAttachmentBeginInfoKHR : return "RenderPassAttachmentBeginInfoKHR";
5712       case StructureType::eAttachmentDescription2KHR : return "AttachmentDescription2KHR";
5713       case StructureType::eAttachmentReference2KHR : return "AttachmentReference2KHR";
5714       case StructureType::eSubpassDescription2KHR : return "SubpassDescription2KHR";
5715       case StructureType::eSubpassDependency2KHR : return "SubpassDependency2KHR";
5716       case StructureType::eRenderPassCreateInfo2KHR : return "RenderPassCreateInfo2KHR";
5717       case StructureType::eSubpassBeginInfoKHR : return "SubpassBeginInfoKHR";
5718       case StructureType::eSubpassEndInfoKHR : return "SubpassEndInfoKHR";
5719       case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
5720       case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
5721       case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
5722       case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
5723       case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
5724       case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
5725       case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
5726       case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
5727       case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
5728       case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
5729       case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
5730       case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
5731       case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
5732       case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
5733       case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
5734       case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
5735       case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
5736       case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
5737       case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
5738       case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
5739       case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
5740       case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
5741       case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
5742       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
5743       case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
5744       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
5745       case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
5746       case StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT : return "PhysicalDeviceSamplerFilterMinmaxPropertiesEXT";
5747       case StructureType::eSamplerReductionModeCreateInfoEXT : return "SamplerReductionModeCreateInfoEXT";
5748       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
5749       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
5750       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
5751       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
5752       case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
5753       case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
5754       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
5755       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
5756       case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
5757       case StructureType::eImageFormatListCreateInfoKHR : return "ImageFormatListCreateInfoKHR";
5758       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
5759       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
5760       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
5761       case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
5762       case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
5763       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
5764       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
5765       case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
5766       case StructureType::eDrmFormatModifierPropertiesEXT : return "DrmFormatModifierPropertiesEXT";
5767       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
5768       case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
5769       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
5770       case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
5771       case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
5772       case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
5773       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfoEXT : return "DescriptorSetLayoutBindingFlagsCreateInfoEXT";
5774       case StructureType::ePhysicalDeviceDescriptorIndexingFeaturesEXT : return "PhysicalDeviceDescriptorIndexingFeaturesEXT";
5775       case StructureType::ePhysicalDeviceDescriptorIndexingPropertiesEXT : return "PhysicalDeviceDescriptorIndexingPropertiesEXT";
5776       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfoEXT : return "DescriptorSetVariableDescriptorCountAllocateInfoEXT";
5777       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupportEXT : return "DescriptorSetVariableDescriptorCountLayoutSupportEXT";
5778       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
5779       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
5780       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
5781       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
5782       case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
5783       case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
5784       case StructureType::eGeometryNV : return "GeometryNV";
5785       case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
5786       case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
5787       case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV";
5788       case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV";
5789       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
5790       case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
5791       case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
5792       case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
5793       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
5794       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
5795       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
5796       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
5797       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
5798       case StructureType::ePhysicalDevice8BitStorageFeaturesKHR : return "PhysicalDevice8BitStorageFeaturesKHR";
5799       case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
5800       case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
5801       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
5802       case StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR : return "PhysicalDeviceShaderAtomicInt64FeaturesKHR";
5803       case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD";
5804       case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
5805       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
5806       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
5807       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
5808       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
5809       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
5810       case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
5811       case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
5812       case StructureType::ePhysicalDeviceDriverPropertiesKHR : return "PhysicalDeviceDriverPropertiesKHR";
5813       case StructureType::ePhysicalDeviceFloatControlsPropertiesKHR : return "PhysicalDeviceFloatControlsPropertiesKHR";
5814       case StructureType::ePhysicalDeviceDepthStencilResolvePropertiesKHR : return "PhysicalDeviceDepthStencilResolvePropertiesKHR";
5815       case StructureType::eSubpassDescriptionDepthStencilResolveKHR : return "SubpassDescriptionDepthStencilResolveKHR";
5816       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
5817       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
5818       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
5819       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
5820       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
5821       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
5822       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
5823       case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
5824       case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
5825       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
5826       case StructureType::eQueryPoolCreateInfoINTEL : return "QueryPoolCreateInfoINTEL";
5827       case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
5828       case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
5829       case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
5830       case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
5831       case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
5832       case StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR : return "PhysicalDeviceVulkanMemoryModelFeaturesKHR";
5833       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
5834       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
5835       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
5836       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
5837       case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
5838       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
5839       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
5840       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
5841       case StructureType::ePhysicalDeviceScalarBlockLayoutFeaturesEXT : return "PhysicalDeviceScalarBlockLayoutFeaturesEXT";
5842       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
5843       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
5844       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
5845       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD";
5846       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD";
5847       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
5848       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
5849       case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
5850       case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
5851       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
5852       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
5853       case StructureType::eBufferDeviceAddressInfoEXT : return "BufferDeviceAddressInfoEXT";
5854       case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
5855       case StructureType::eImageStencilUsageCreateInfoEXT : return "ImageStencilUsageCreateInfoEXT";
5856       case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
5857       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
5858       case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
5859       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
5860       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
5861       case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
5862       case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
5863       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
5864       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
5865       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR : return "PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR";
5866       case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
5867       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
5868       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
5869       case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
5870       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT";
5871       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT";
5872       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT";
5873       case StructureType::ePhysicalDeviceHostQueryResetFeaturesEXT : return "PhysicalDeviceHostQueryResetFeaturesEXT";
5874       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
5875       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
5876       case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR";
5877       case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR";
5878       case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR";
5879       case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR";
5880       case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR";
5881       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
5882       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
5883       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
5884       default: return "invalid";
5885     }
5886   }
5887 
5888   enum class SubpassContents
5889   {
5890     eInline = VK_SUBPASS_CONTENTS_INLINE,
5891     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
5892   };
5893 
to_string(SubpassContents value)5894   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
5895   {
5896     switch ( value )
5897     {
5898       case SubpassContents::eInline : return "Inline";
5899       case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
5900       default: return "invalid";
5901     }
5902   }
5903 
5904   enum class SystemAllocationScope
5905   {
5906     eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
5907     eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
5908     eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
5909     eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
5910     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
5911   };
5912 
to_string(SystemAllocationScope value)5913   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
5914   {
5915     switch ( value )
5916     {
5917       case SystemAllocationScope::eCommand : return "Command";
5918       case SystemAllocationScope::eObject : return "Object";
5919       case SystemAllocationScope::eCache : return "Cache";
5920       case SystemAllocationScope::eDevice : return "Device";
5921       case SystemAllocationScope::eInstance : return "Instance";
5922       default: return "invalid";
5923     }
5924   }
5925 
5926   enum class TessellationDomainOrigin
5927   {
5928     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5929     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5930     eUpperLeftKHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
5931     eLowerLeftKHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR
5932   };
5933 
to_string(TessellationDomainOrigin value)5934   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
5935   {
5936     switch ( value )
5937     {
5938       case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
5939       case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
5940       default: return "invalid";
5941     }
5942   }
5943 
5944   enum class TimeDomainEXT
5945   {
5946     eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
5947     eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
5948     eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
5949     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
5950   };
5951 
to_string(TimeDomainEXT value)5952   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
5953   {
5954     switch ( value )
5955     {
5956       case TimeDomainEXT::eDevice : return "Device";
5957       case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
5958       case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
5959       case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
5960       default: return "invalid";
5961     }
5962   }
5963 
5964   enum class ValidationCacheHeaderVersionEXT
5965   {
5966     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
5967   };
5968 
to_string(ValidationCacheHeaderVersionEXT value)5969   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
5970   {
5971     switch ( value )
5972     {
5973       case ValidationCacheHeaderVersionEXT::eOne : return "One";
5974       default: return "invalid";
5975     }
5976   }
5977 
5978   enum class ValidationCheckEXT
5979   {
5980     eAll = VK_VALIDATION_CHECK_ALL_EXT,
5981     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
5982   };
5983 
to_string(ValidationCheckEXT value)5984   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
5985   {
5986     switch ( value )
5987     {
5988       case ValidationCheckEXT::eAll : return "All";
5989       case ValidationCheckEXT::eShaders : return "Shaders";
5990       default: return "invalid";
5991     }
5992   }
5993 
5994   enum class ValidationFeatureDisableEXT
5995   {
5996     eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
5997     eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
5998     eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
5999     eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
6000     eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
6001     eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
6002     eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
6003   };
6004 
to_string(ValidationFeatureDisableEXT value)6005   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
6006   {
6007     switch ( value )
6008     {
6009       case ValidationFeatureDisableEXT::eAll : return "All";
6010       case ValidationFeatureDisableEXT::eShaders : return "Shaders";
6011       case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
6012       case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
6013       case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
6014       case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
6015       case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
6016       default: return "invalid";
6017     }
6018   }
6019 
6020   enum class ValidationFeatureEnableEXT
6021   {
6022     eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
6023     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
6024     eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
6025   };
6026 
to_string(ValidationFeatureEnableEXT value)6027   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
6028   {
6029     switch ( value )
6030     {
6031       case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
6032       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
6033       case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices";
6034       default: return "invalid";
6035     }
6036   }
6037 
6038   enum class VendorId
6039   {
6040     eVIV = VK_VENDOR_ID_VIV,
6041     eVSI = VK_VENDOR_ID_VSI,
6042     eKazan = VK_VENDOR_ID_KAZAN
6043   };
6044 
to_string(VendorId value)6045   VULKAN_HPP_INLINE std::string to_string( VendorId value )
6046   {
6047     switch ( value )
6048     {
6049       case VendorId::eVIV : return "VIV";
6050       case VendorId::eVSI : return "VSI";
6051       case VendorId::eKazan : return "Kazan";
6052       default: return "invalid";
6053     }
6054   }
6055 
6056   enum class VertexInputRate
6057   {
6058     eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
6059     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
6060   };
6061 
to_string(VertexInputRate value)6062   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
6063   {
6064     switch ( value )
6065     {
6066       case VertexInputRate::eVertex : return "Vertex";
6067       case VertexInputRate::eInstance : return "Instance";
6068       default: return "invalid";
6069     }
6070   }
6071 
6072   enum class ViewportCoordinateSwizzleNV
6073   {
6074     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
6075     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
6076     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
6077     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
6078     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
6079     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
6080     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
6081     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
6082   };
6083 
to_string(ViewportCoordinateSwizzleNV value)6084   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
6085   {
6086     switch ( value )
6087     {
6088       case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
6089       case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
6090       case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
6091       case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
6092       case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
6093       case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
6094       case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
6095       case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
6096       default: return "invalid";
6097     }
6098   }
6099 
6100   template<ObjectType value>
6101   struct cpp_type
6102   {
6103   };
6104 
6105   enum class AccessFlagBits
6106   {
6107     eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
6108     eIndexRead = VK_ACCESS_INDEX_READ_BIT,
6109     eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
6110     eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
6111     eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
6112     eShaderRead = VK_ACCESS_SHADER_READ_BIT,
6113     eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
6114     eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
6115     eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
6116     eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
6117     eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
6118     eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
6119     eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
6120     eHostRead = VK_ACCESS_HOST_READ_BIT,
6121     eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
6122     eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
6123     eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
6124     eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
6125     eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
6126     eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
6127     eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
6128     eCommandProcessReadNVX = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,
6129     eCommandProcessWriteNVX = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,
6130     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
6131     eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
6132     eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
6133     eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
6134     eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
6135   };
6136 
to_string(AccessFlagBits value)6137   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
6138   {
6139     switch ( value )
6140     {
6141       case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
6142       case AccessFlagBits::eIndexRead : return "IndexRead";
6143       case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
6144       case AccessFlagBits::eUniformRead : return "UniformRead";
6145       case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
6146       case AccessFlagBits::eShaderRead : return "ShaderRead";
6147       case AccessFlagBits::eShaderWrite : return "ShaderWrite";
6148       case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
6149       case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
6150       case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
6151       case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
6152       case AccessFlagBits::eTransferRead : return "TransferRead";
6153       case AccessFlagBits::eTransferWrite : return "TransferWrite";
6154       case AccessFlagBits::eHostRead : return "HostRead";
6155       case AccessFlagBits::eHostWrite : return "HostWrite";
6156       case AccessFlagBits::eMemoryRead : return "MemoryRead";
6157       case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
6158       case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
6159       case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
6160       case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
6161       case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
6162       case AccessFlagBits::eCommandProcessReadNVX : return "CommandProcessReadNVX";
6163       case AccessFlagBits::eCommandProcessWriteNVX : return "CommandProcessWriteNVX";
6164       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
6165       case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
6166       case AccessFlagBits::eAccelerationStructureReadNV : return "AccelerationStructureReadNV";
6167       case AccessFlagBits::eAccelerationStructureWriteNV : return "AccelerationStructureWriteNV";
6168       case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
6169       default: return "invalid";
6170     }
6171   }
6172 
6173   using AccessFlags = Flags<AccessFlagBits, VkAccessFlags>;
6174 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)6175   VULKAN_HPP_INLINE AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 )
6176   {
6177     return AccessFlags( bit0 ) | bit1;
6178   }
6179 
operator ~(AccessFlagBits bits)6180   VULKAN_HPP_INLINE AccessFlags operator~( AccessFlagBits bits )
6181   {
6182     return ~( AccessFlags( bits ) );
6183   }
6184 
6185   template <> struct FlagTraits<AccessFlagBits>
6186   {
6187     enum
6188     {
6189       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::eCommandProcessReadNVX) | VkFlags(AccessFlagBits::eCommandProcessWriteNVX) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureWriteNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT)
6190     };
6191   };
6192 
to_string(AccessFlags value)6193   VULKAN_HPP_INLINE std::string to_string( AccessFlags value  )
6194   {
6195     if ( !value ) return "{}";
6196     std::string result;
6197 
6198     if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
6199     if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
6200     if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
6201     if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
6202     if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
6203     if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
6204     if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
6205     if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
6206     if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
6207     if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
6208     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
6209     if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
6210     if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
6211     if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
6212     if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
6213     if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
6214     if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
6215     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
6216     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
6217     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
6218     if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
6219     if ( value & AccessFlagBits::eCommandProcessReadNVX ) result += "CommandProcessReadNVX | ";
6220     if ( value & AccessFlagBits::eCommandProcessWriteNVX ) result += "CommandProcessWriteNVX | ";
6221     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
6222     if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
6223     if ( value & AccessFlagBits::eAccelerationStructureReadNV ) result += "AccelerationStructureReadNV | ";
6224     if ( value & AccessFlagBits::eAccelerationStructureWriteNV ) result += "AccelerationStructureWriteNV | ";
6225     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
6226     return "{ " + result.substr(0, result.size() - 3) + " }";
6227   }
6228 
6229 #ifdef VK_USE_PLATFORM_ANDROID_KHR
6230   enum class AndroidSurfaceCreateFlagBitsKHR
6231   {};
6232 
to_string(AndroidSurfaceCreateFlagBitsKHR)6233   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
6234   {
6235     return "(void)";
6236   }
6237 
6238   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR, VkAndroidSurfaceCreateFlagsKHR>;
6239 
to_string(AndroidSurfaceCreateFlagsKHR)6240   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR  )
6241   {
6242     return "{}";
6243   }
6244 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
6245 
6246   enum class AttachmentDescriptionFlagBits
6247   {
6248     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
6249   };
6250 
to_string(AttachmentDescriptionFlagBits value)6251   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
6252   {
6253     switch ( value )
6254     {
6255       case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
6256       default: return "invalid";
6257     }
6258   }
6259 
6260   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits, VkAttachmentDescriptionFlags>;
6261 
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)6262   VULKAN_HPP_INLINE AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 )
6263   {
6264     return AttachmentDescriptionFlags( bit0 ) | bit1;
6265   }
6266 
operator ~(AttachmentDescriptionFlagBits bits)6267   VULKAN_HPP_INLINE AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits )
6268   {
6269     return ~( AttachmentDescriptionFlags( bits ) );
6270   }
6271 
6272   template <> struct FlagTraits<AttachmentDescriptionFlagBits>
6273   {
6274     enum
6275     {
6276       allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
6277     };
6278   };
6279 
to_string(AttachmentDescriptionFlags value)6280   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value  )
6281   {
6282     if ( !value ) return "{}";
6283     std::string result;
6284 
6285     if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
6286     return "{ " + result.substr(0, result.size() - 3) + " }";
6287   }
6288 
6289   enum class BufferCreateFlagBits
6290   {
6291     eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
6292     eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
6293     eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
6294     eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
6295     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
6296   };
6297 
to_string(BufferCreateFlagBits value)6298   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
6299   {
6300     switch ( value )
6301     {
6302       case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
6303       case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
6304       case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
6305       case BufferCreateFlagBits::eProtected : return "Protected";
6306       case BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT : return "DeviceAddressCaptureReplayEXT";
6307       default: return "invalid";
6308     }
6309   }
6310 
6311   using BufferCreateFlags = Flags<BufferCreateFlagBits, VkBufferCreateFlags>;
6312 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)6313   VULKAN_HPP_INLINE BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 )
6314   {
6315     return BufferCreateFlags( bit0 ) | bit1;
6316   }
6317 
operator ~(BufferCreateFlagBits bits)6318   VULKAN_HPP_INLINE BufferCreateFlags operator~( BufferCreateFlagBits bits )
6319   {
6320     return ~( BufferCreateFlags( bits ) );
6321   }
6322 
6323   template <> struct FlagTraits<BufferCreateFlagBits>
6324   {
6325     enum
6326     {
6327       allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT)
6328     };
6329   };
6330 
to_string(BufferCreateFlags value)6331   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value  )
6332   {
6333     if ( !value ) return "{}";
6334     std::string result;
6335 
6336     if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
6337     if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
6338     if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
6339     if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
6340     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT ) result += "DeviceAddressCaptureReplayEXT | ";
6341     return "{ " + result.substr(0, result.size() - 3) + " }";
6342   }
6343 
6344   enum class BufferUsageFlagBits
6345   {
6346     eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
6347     eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
6348     eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
6349     eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
6350     eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
6351     eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
6352     eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
6353     eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
6354     eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
6355     eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
6356     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
6357     eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
6358     eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
6359     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT
6360   };
6361 
to_string(BufferUsageFlagBits value)6362   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
6363   {
6364     switch ( value )
6365     {
6366       case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
6367       case BufferUsageFlagBits::eTransferDst : return "TransferDst";
6368       case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
6369       case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
6370       case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
6371       case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
6372       case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
6373       case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
6374       case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
6375       case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
6376       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
6377       case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
6378       case BufferUsageFlagBits::eRayTracingNV : return "RayTracingNV";
6379       case BufferUsageFlagBits::eShaderDeviceAddressEXT : return "ShaderDeviceAddressEXT";
6380       default: return "invalid";
6381     }
6382   }
6383 
6384   using BufferUsageFlags = Flags<BufferUsageFlagBits, VkBufferUsageFlags>;
6385 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)6386   VULKAN_HPP_INLINE BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 )
6387   {
6388     return BufferUsageFlags( bit0 ) | bit1;
6389   }
6390 
operator ~(BufferUsageFlagBits bits)6391   VULKAN_HPP_INLINE BufferUsageFlags operator~( BufferUsageFlagBits bits )
6392   {
6393     return ~( BufferUsageFlags( bits ) );
6394   }
6395 
6396   template <> struct FlagTraits<BufferUsageFlagBits>
6397   {
6398     enum
6399     {
6400       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::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRayTracingNV) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddressEXT)
6401     };
6402   };
6403 
to_string(BufferUsageFlags value)6404   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value  )
6405   {
6406     if ( !value ) return "{}";
6407     std::string result;
6408 
6409     if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
6410     if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
6411     if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
6412     if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
6413     if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
6414     if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
6415     if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
6416     if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
6417     if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
6418     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
6419     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
6420     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
6421     if ( value & BufferUsageFlagBits::eRayTracingNV ) result += "RayTracingNV | ";
6422     if ( value & BufferUsageFlagBits::eShaderDeviceAddressEXT ) result += "ShaderDeviceAddressEXT | ";
6423     return "{ " + result.substr(0, result.size() - 3) + " }";
6424   }
6425 
6426   enum class BufferViewCreateFlagBits
6427   {};
6428 
to_string(BufferViewCreateFlagBits)6429   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
6430   {
6431     return "(void)";
6432   }
6433 
6434   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits, VkBufferViewCreateFlags>;
6435 
to_string(BufferViewCreateFlags)6436   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags  )
6437   {
6438     return "{}";
6439   }
6440 
6441   enum class BuildAccelerationStructureFlagBitsNV
6442   {
6443     eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,
6444     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,
6445     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,
6446     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,
6447     eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV
6448   };
6449 
to_string(BuildAccelerationStructureFlagBitsNV value)6450   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsNV value )
6451   {
6452     switch ( value )
6453     {
6454       case BuildAccelerationStructureFlagBitsNV::eAllowUpdate : return "AllowUpdate";
6455       case BuildAccelerationStructureFlagBitsNV::eAllowCompaction : return "AllowCompaction";
6456       case BuildAccelerationStructureFlagBitsNV::ePreferFastTrace : return "PreferFastTrace";
6457       case BuildAccelerationStructureFlagBitsNV::ePreferFastBuild : return "PreferFastBuild";
6458       case BuildAccelerationStructureFlagBitsNV::eLowMemory : return "LowMemory";
6459       default: return "invalid";
6460     }
6461   }
6462 
6463   using BuildAccelerationStructureFlagsNV = Flags<BuildAccelerationStructureFlagBitsNV, VkBuildAccelerationStructureFlagsNV>;
6464 
operator |(BuildAccelerationStructureFlagBitsNV bit0,BuildAccelerationStructureFlagBitsNV bit1)6465   VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNV operator|( BuildAccelerationStructureFlagBitsNV bit0, BuildAccelerationStructureFlagBitsNV bit1 )
6466   {
6467     return BuildAccelerationStructureFlagsNV( bit0 ) | bit1;
6468   }
6469 
operator ~(BuildAccelerationStructureFlagBitsNV bits)6470   VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNV operator~( BuildAccelerationStructureFlagBitsNV bits )
6471   {
6472     return ~( BuildAccelerationStructureFlagsNV( bits ) );
6473   }
6474 
6475   template <> struct FlagTraits<BuildAccelerationStructureFlagBitsNV>
6476   {
6477     enum
6478     {
6479       allFlags = VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsNV::eLowMemory)
6480     };
6481   };
6482 
to_string(BuildAccelerationStructureFlagsNV value)6483   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsNV value  )
6484   {
6485     if ( !value ) return "{}";
6486     std::string result;
6487 
6488     if ( value & BuildAccelerationStructureFlagBitsNV::eAllowUpdate ) result += "AllowUpdate | ";
6489     if ( value & BuildAccelerationStructureFlagBitsNV::eAllowCompaction ) result += "AllowCompaction | ";
6490     if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastTrace ) result += "PreferFastTrace | ";
6491     if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastBuild ) result += "PreferFastBuild | ";
6492     if ( value & BuildAccelerationStructureFlagBitsNV::eLowMemory ) result += "LowMemory | ";
6493     return "{ " + result.substr(0, result.size() - 3) + " }";
6494   }
6495 
6496   enum class ColorComponentFlagBits
6497   {
6498     eR = VK_COLOR_COMPONENT_R_BIT,
6499     eG = VK_COLOR_COMPONENT_G_BIT,
6500     eB = VK_COLOR_COMPONENT_B_BIT,
6501     eA = VK_COLOR_COMPONENT_A_BIT
6502   };
6503 
to_string(ColorComponentFlagBits value)6504   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
6505   {
6506     switch ( value )
6507     {
6508       case ColorComponentFlagBits::eR : return "R";
6509       case ColorComponentFlagBits::eG : return "G";
6510       case ColorComponentFlagBits::eB : return "B";
6511       case ColorComponentFlagBits::eA : return "A";
6512       default: return "invalid";
6513     }
6514   }
6515 
6516   using ColorComponentFlags = Flags<ColorComponentFlagBits, VkColorComponentFlags>;
6517 
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)6518   VULKAN_HPP_INLINE ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 )
6519   {
6520     return ColorComponentFlags( bit0 ) | bit1;
6521   }
6522 
operator ~(ColorComponentFlagBits bits)6523   VULKAN_HPP_INLINE ColorComponentFlags operator~( ColorComponentFlagBits bits )
6524   {
6525     return ~( ColorComponentFlags( bits ) );
6526   }
6527 
6528   template <> struct FlagTraits<ColorComponentFlagBits>
6529   {
6530     enum
6531     {
6532       allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
6533     };
6534   };
6535 
to_string(ColorComponentFlags value)6536   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value  )
6537   {
6538     if ( !value ) return "{}";
6539     std::string result;
6540 
6541     if ( value & ColorComponentFlagBits::eR ) result += "R | ";
6542     if ( value & ColorComponentFlagBits::eG ) result += "G | ";
6543     if ( value & ColorComponentFlagBits::eB ) result += "B | ";
6544     if ( value & ColorComponentFlagBits::eA ) result += "A | ";
6545     return "{ " + result.substr(0, result.size() - 3) + " }";
6546   }
6547 
6548   enum class CommandBufferResetFlagBits
6549   {
6550     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
6551   };
6552 
to_string(CommandBufferResetFlagBits value)6553   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
6554   {
6555     switch ( value )
6556     {
6557       case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
6558       default: return "invalid";
6559     }
6560   }
6561 
6562   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits, VkCommandBufferResetFlags>;
6563 
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)6564   VULKAN_HPP_INLINE CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 )
6565   {
6566     return CommandBufferResetFlags( bit0 ) | bit1;
6567   }
6568 
operator ~(CommandBufferResetFlagBits bits)6569   VULKAN_HPP_INLINE CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits )
6570   {
6571     return ~( CommandBufferResetFlags( bits ) );
6572   }
6573 
6574   template <> struct FlagTraits<CommandBufferResetFlagBits>
6575   {
6576     enum
6577     {
6578       allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
6579     };
6580   };
6581 
to_string(CommandBufferResetFlags value)6582   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value  )
6583   {
6584     if ( !value ) return "{}";
6585     std::string result;
6586 
6587     if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
6588     return "{ " + result.substr(0, result.size() - 3) + " }";
6589   }
6590 
6591   enum class CommandBufferUsageFlagBits
6592   {
6593     eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
6594     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
6595     eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
6596   };
6597 
to_string(CommandBufferUsageFlagBits value)6598   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
6599   {
6600     switch ( value )
6601     {
6602       case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
6603       case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
6604       case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
6605       default: return "invalid";
6606     }
6607   }
6608 
6609   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits, VkCommandBufferUsageFlags>;
6610 
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)6611   VULKAN_HPP_INLINE CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 )
6612   {
6613     return CommandBufferUsageFlags( bit0 ) | bit1;
6614   }
6615 
operator ~(CommandBufferUsageFlagBits bits)6616   VULKAN_HPP_INLINE CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits )
6617   {
6618     return ~( CommandBufferUsageFlags( bits ) );
6619   }
6620 
6621   template <> struct FlagTraits<CommandBufferUsageFlagBits>
6622   {
6623     enum
6624     {
6625       allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
6626     };
6627   };
6628 
to_string(CommandBufferUsageFlags value)6629   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value  )
6630   {
6631     if ( !value ) return "{}";
6632     std::string result;
6633 
6634     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
6635     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
6636     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
6637     return "{ " + result.substr(0, result.size() - 3) + " }";
6638   }
6639 
6640   enum class CommandPoolCreateFlagBits
6641   {
6642     eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
6643     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
6644     eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
6645   };
6646 
to_string(CommandPoolCreateFlagBits value)6647   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
6648   {
6649     switch ( value )
6650     {
6651       case CommandPoolCreateFlagBits::eTransient : return "Transient";
6652       case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
6653       case CommandPoolCreateFlagBits::eProtected : return "Protected";
6654       default: return "invalid";
6655     }
6656   }
6657 
6658   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits, VkCommandPoolCreateFlags>;
6659 
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)6660   VULKAN_HPP_INLINE CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 )
6661   {
6662     return CommandPoolCreateFlags( bit0 ) | bit1;
6663   }
6664 
operator ~(CommandPoolCreateFlagBits bits)6665   VULKAN_HPP_INLINE CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits )
6666   {
6667     return ~( CommandPoolCreateFlags( bits ) );
6668   }
6669 
6670   template <> struct FlagTraits<CommandPoolCreateFlagBits>
6671   {
6672     enum
6673     {
6674       allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
6675     };
6676   };
6677 
to_string(CommandPoolCreateFlags value)6678   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value  )
6679   {
6680     if ( !value ) return "{}";
6681     std::string result;
6682 
6683     if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
6684     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
6685     if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
6686     return "{ " + result.substr(0, result.size() - 3) + " }";
6687   }
6688 
6689   enum class CommandPoolResetFlagBits
6690   {
6691     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
6692   };
6693 
to_string(CommandPoolResetFlagBits value)6694   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
6695   {
6696     switch ( value )
6697     {
6698       case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
6699       default: return "invalid";
6700     }
6701   }
6702 
6703   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits, VkCommandPoolResetFlags>;
6704 
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)6705   VULKAN_HPP_INLINE CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 )
6706   {
6707     return CommandPoolResetFlags( bit0 ) | bit1;
6708   }
6709 
operator ~(CommandPoolResetFlagBits bits)6710   VULKAN_HPP_INLINE CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits )
6711   {
6712     return ~( CommandPoolResetFlags( bits ) );
6713   }
6714 
6715   template <> struct FlagTraits<CommandPoolResetFlagBits>
6716   {
6717     enum
6718     {
6719       allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
6720     };
6721   };
6722 
to_string(CommandPoolResetFlags value)6723   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value  )
6724   {
6725     if ( !value ) return "{}";
6726     std::string result;
6727 
6728     if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
6729     return "{ " + result.substr(0, result.size() - 3) + " }";
6730   }
6731 
6732   enum class CommandPoolTrimFlagBits
6733   {};
6734 
to_string(CommandPoolTrimFlagBits)6735   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
6736   {
6737     return "(void)";
6738   }
6739 
6740   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits, VkCommandPoolTrimFlags>;
6741 
6742   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
6743 
to_string(CommandPoolTrimFlags)6744   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags  )
6745   {
6746     return "{}";
6747   }
6748 
6749   enum class CompositeAlphaFlagBitsKHR
6750   {
6751     eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
6752     ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
6753     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
6754     eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
6755   };
6756 
to_string(CompositeAlphaFlagBitsKHR value)6757   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
6758   {
6759     switch ( value )
6760     {
6761       case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
6762       case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
6763       case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
6764       case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
6765       default: return "invalid";
6766     }
6767   }
6768 
6769   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR, VkCompositeAlphaFlagsKHR>;
6770 
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)6771   VULKAN_HPP_INLINE CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 )
6772   {
6773     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
6774   }
6775 
operator ~(CompositeAlphaFlagBitsKHR bits)6776   VULKAN_HPP_INLINE CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits )
6777   {
6778     return ~( CompositeAlphaFlagsKHR( bits ) );
6779   }
6780 
6781   template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
6782   {
6783     enum
6784     {
6785       allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
6786     };
6787   };
6788 
to_string(CompositeAlphaFlagsKHR value)6789   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value  )
6790   {
6791     if ( !value ) return "{}";
6792     std::string result;
6793 
6794     if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
6795     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
6796     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
6797     if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
6798     return "{ " + result.substr(0, result.size() - 3) + " }";
6799   }
6800 
6801   enum class ConditionalRenderingFlagBitsEXT
6802   {
6803     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
6804   };
6805 
to_string(ConditionalRenderingFlagBitsEXT value)6806   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
6807   {
6808     switch ( value )
6809     {
6810       case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
6811       default: return "invalid";
6812     }
6813   }
6814 
6815   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT, VkConditionalRenderingFlagsEXT>;
6816 
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)6817   VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 )
6818   {
6819     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
6820   }
6821 
operator ~(ConditionalRenderingFlagBitsEXT bits)6822   VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits )
6823   {
6824     return ~( ConditionalRenderingFlagsEXT( bits ) );
6825   }
6826 
6827   template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
6828   {
6829     enum
6830     {
6831       allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
6832     };
6833   };
6834 
to_string(ConditionalRenderingFlagsEXT value)6835   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value  )
6836   {
6837     if ( !value ) return "{}";
6838     std::string result;
6839 
6840     if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
6841     return "{ " + result.substr(0, result.size() - 3) + " }";
6842   }
6843 
6844   enum class CullModeFlagBits
6845   {
6846     eNone = VK_CULL_MODE_NONE,
6847     eFront = VK_CULL_MODE_FRONT_BIT,
6848     eBack = VK_CULL_MODE_BACK_BIT,
6849     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
6850   };
6851 
to_string(CullModeFlagBits value)6852   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
6853   {
6854     switch ( value )
6855     {
6856       case CullModeFlagBits::eNone : return "None";
6857       case CullModeFlagBits::eFront : return "Front";
6858       case CullModeFlagBits::eBack : return "Back";
6859       case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
6860       default: return "invalid";
6861     }
6862   }
6863 
6864   using CullModeFlags = Flags<CullModeFlagBits, VkCullModeFlags>;
6865 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)6866   VULKAN_HPP_INLINE CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 )
6867   {
6868     return CullModeFlags( bit0 ) | bit1;
6869   }
6870 
operator ~(CullModeFlagBits bits)6871   VULKAN_HPP_INLINE CullModeFlags operator~( CullModeFlagBits bits )
6872   {
6873     return ~( CullModeFlags( bits ) );
6874   }
6875 
6876   template <> struct FlagTraits<CullModeFlagBits>
6877   {
6878     enum
6879     {
6880       allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
6881     };
6882   };
6883 
to_string(CullModeFlags value)6884   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value  )
6885   {
6886     if ( !value ) return "{}";
6887     std::string result;
6888 
6889     if ( value & CullModeFlagBits::eFront ) result += "Front | ";
6890     if ( value & CullModeFlagBits::eBack ) result += "Back | ";
6891     return "{ " + result.substr(0, result.size() - 3) + " }";
6892   }
6893 
6894   enum class DebugReportFlagBitsEXT
6895   {
6896     eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
6897     eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
6898     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
6899     eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
6900     eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
6901   };
6902 
to_string(DebugReportFlagBitsEXT value)6903   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
6904   {
6905     switch ( value )
6906     {
6907       case DebugReportFlagBitsEXT::eInformation : return "Information";
6908       case DebugReportFlagBitsEXT::eWarning : return "Warning";
6909       case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
6910       case DebugReportFlagBitsEXT::eError : return "Error";
6911       case DebugReportFlagBitsEXT::eDebug : return "Debug";
6912       default: return "invalid";
6913     }
6914   }
6915 
6916   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT, VkDebugReportFlagsEXT>;
6917 
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)6918   VULKAN_HPP_INLINE DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 )
6919   {
6920     return DebugReportFlagsEXT( bit0 ) | bit1;
6921   }
6922 
operator ~(DebugReportFlagBitsEXT bits)6923   VULKAN_HPP_INLINE DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits )
6924   {
6925     return ~( DebugReportFlagsEXT( bits ) );
6926   }
6927 
6928   template <> struct FlagTraits<DebugReportFlagBitsEXT>
6929   {
6930     enum
6931     {
6932       allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
6933     };
6934   };
6935 
to_string(DebugReportFlagsEXT value)6936   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value  )
6937   {
6938     if ( !value ) return "{}";
6939     std::string result;
6940 
6941     if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
6942     if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
6943     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
6944     if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
6945     if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
6946     return "{ " + result.substr(0, result.size() - 3) + " }";
6947   }
6948 
6949   enum class DebugUtilsMessageSeverityFlagBitsEXT
6950   {
6951     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
6952     eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
6953     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
6954     eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
6955   };
6956 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)6957   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
6958   {
6959     switch ( value )
6960     {
6961       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
6962       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
6963       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
6964       case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
6965       default: return "invalid";
6966     }
6967   }
6968 
6969   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageSeverityFlagsEXT>;
6970 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)6971   VULKAN_HPP_INLINE DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 )
6972   {
6973     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
6974   }
6975 
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)6976   VULKAN_HPP_INLINE DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits )
6977   {
6978     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
6979   }
6980 
6981   template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
6982   {
6983     enum
6984     {
6985       allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
6986     };
6987   };
6988 
to_string(DebugUtilsMessageSeverityFlagsEXT value)6989   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value  )
6990   {
6991     if ( !value ) return "{}";
6992     std::string result;
6993 
6994     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
6995     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
6996     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
6997     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
6998     return "{ " + result.substr(0, result.size() - 3) + " }";
6999   }
7000 
7001   enum class DebugUtilsMessageTypeFlagBitsEXT
7002   {
7003     eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
7004     eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
7005     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
7006   };
7007 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)7008   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
7009   {
7010     switch ( value )
7011     {
7012       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
7013       case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
7014       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
7015       default: return "invalid";
7016     }
7017   }
7018 
7019   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT>;
7020 
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)7021   VULKAN_HPP_INLINE DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 )
7022   {
7023     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
7024   }
7025 
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)7026   VULKAN_HPP_INLINE DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits )
7027   {
7028     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
7029   }
7030 
7031   template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
7032   {
7033     enum
7034     {
7035       allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
7036     };
7037   };
7038 
to_string(DebugUtilsMessageTypeFlagsEXT value)7039   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value  )
7040   {
7041     if ( !value ) return "{}";
7042     std::string result;
7043 
7044     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
7045     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
7046     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
7047     return "{ " + result.substr(0, result.size() - 3) + " }";
7048   }
7049 
7050   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT
7051   {};
7052 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)7053   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
7054   {
7055     return "(void)";
7056   }
7057 
7058   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT, VkDebugUtilsMessengerCallbackDataFlagsEXT>;
7059 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)7060   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT  )
7061   {
7062     return "{}";
7063   }
7064 
7065   enum class DebugUtilsMessengerCreateFlagBitsEXT
7066   {};
7067 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)7068   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
7069   {
7070     return "(void)";
7071   }
7072 
7073   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT, VkDebugUtilsMessengerCreateFlagsEXT>;
7074 
to_string(DebugUtilsMessengerCreateFlagsEXT)7075   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT  )
7076   {
7077     return "{}";
7078   }
7079 
7080   enum class DependencyFlagBits
7081   {
7082     eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
7083     eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
7084     eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
7085     eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,
7086     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
7087   };
7088 
to_string(DependencyFlagBits value)7089   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
7090   {
7091     switch ( value )
7092     {
7093       case DependencyFlagBits::eByRegion : return "ByRegion";
7094       case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
7095       case DependencyFlagBits::eViewLocal : return "ViewLocal";
7096       default: return "invalid";
7097     }
7098   }
7099 
7100   using DependencyFlags = Flags<DependencyFlagBits, VkDependencyFlags>;
7101 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)7102   VULKAN_HPP_INLINE DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 )
7103   {
7104     return DependencyFlags( bit0 ) | bit1;
7105   }
7106 
operator ~(DependencyFlagBits bits)7107   VULKAN_HPP_INLINE DependencyFlags operator~( DependencyFlagBits bits )
7108   {
7109     return ~( DependencyFlags( bits ) );
7110   }
7111 
7112   template <> struct FlagTraits<DependencyFlagBits>
7113   {
7114     enum
7115     {
7116       allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
7117     };
7118   };
7119 
to_string(DependencyFlags value)7120   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value  )
7121   {
7122     if ( !value ) return "{}";
7123     std::string result;
7124 
7125     if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
7126     if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
7127     if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
7128     return "{ " + result.substr(0, result.size() - 3) + " }";
7129   }
7130 
7131   enum class DescriptorBindingFlagBitsEXT
7132   {
7133     eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,
7134     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,
7135     ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,
7136     eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT
7137   };
7138 
to_string(DescriptorBindingFlagBitsEXT value)7139   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBitsEXT value )
7140   {
7141     switch ( value )
7142     {
7143       case DescriptorBindingFlagBitsEXT::eUpdateAfterBind : return "UpdateAfterBind";
7144       case DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
7145       case DescriptorBindingFlagBitsEXT::ePartiallyBound : return "PartiallyBound";
7146       case DescriptorBindingFlagBitsEXT::eVariableDescriptorCount : return "VariableDescriptorCount";
7147       default: return "invalid";
7148     }
7149   }
7150 
7151   using DescriptorBindingFlagsEXT = Flags<DescriptorBindingFlagBitsEXT, VkDescriptorBindingFlagsEXT>;
7152 
operator |(DescriptorBindingFlagBitsEXT bit0,DescriptorBindingFlagBitsEXT bit1)7153   VULKAN_HPP_INLINE DescriptorBindingFlagsEXT operator|( DescriptorBindingFlagBitsEXT bit0, DescriptorBindingFlagBitsEXT bit1 )
7154   {
7155     return DescriptorBindingFlagsEXT( bit0 ) | bit1;
7156   }
7157 
operator ~(DescriptorBindingFlagBitsEXT bits)7158   VULKAN_HPP_INLINE DescriptorBindingFlagsEXT operator~( DescriptorBindingFlagBitsEXT bits )
7159   {
7160     return ~( DescriptorBindingFlagsEXT( bits ) );
7161   }
7162 
7163   template <> struct FlagTraits<DescriptorBindingFlagBitsEXT>
7164   {
7165     enum
7166     {
7167       allFlags = VkFlags(DescriptorBindingFlagBitsEXT::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBitsEXT::ePartiallyBound) | VkFlags(DescriptorBindingFlagBitsEXT::eVariableDescriptorCount)
7168     };
7169   };
7170 
to_string(DescriptorBindingFlagsEXT value)7171   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagsEXT value  )
7172   {
7173     if ( !value ) return "{}";
7174     std::string result;
7175 
7176     if ( value & DescriptorBindingFlagBitsEXT::eUpdateAfterBind ) result += "UpdateAfterBind | ";
7177     if ( value & DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
7178     if ( value & DescriptorBindingFlagBitsEXT::ePartiallyBound ) result += "PartiallyBound | ";
7179     if ( value & DescriptorBindingFlagBitsEXT::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
7180     return "{ " + result.substr(0, result.size() - 3) + " }";
7181   }
7182 
7183   enum class DescriptorPoolCreateFlagBits
7184   {
7185     eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
7186     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
7187   };
7188 
to_string(DescriptorPoolCreateFlagBits value)7189   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
7190   {
7191     switch ( value )
7192     {
7193       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
7194       case DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT : return "UpdateAfterBindEXT";
7195       default: return "invalid";
7196     }
7197   }
7198 
7199   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits, VkDescriptorPoolCreateFlags>;
7200 
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)7201   VULKAN_HPP_INLINE DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 )
7202   {
7203     return DescriptorPoolCreateFlags( bit0 ) | bit1;
7204   }
7205 
operator ~(DescriptorPoolCreateFlagBits bits)7206   VULKAN_HPP_INLINE DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits )
7207   {
7208     return ~( DescriptorPoolCreateFlags( bits ) );
7209   }
7210 
7211   template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
7212   {
7213     enum
7214     {
7215       allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT)
7216     };
7217   };
7218 
to_string(DescriptorPoolCreateFlags value)7219   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value  )
7220   {
7221     if ( !value ) return "{}";
7222     std::string result;
7223 
7224     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
7225     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT ) result += "UpdateAfterBindEXT | ";
7226     return "{ " + result.substr(0, result.size() - 3) + " }";
7227   }
7228 
7229   enum class DescriptorPoolResetFlagBits
7230   {};
7231 
to_string(DescriptorPoolResetFlagBits)7232   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
7233   {
7234     return "(void)";
7235   }
7236 
7237   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits, VkDescriptorPoolResetFlags>;
7238 
to_string(DescriptorPoolResetFlags)7239   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags  )
7240   {
7241     return "{}";
7242   }
7243 
7244   enum class DescriptorSetLayoutCreateFlagBits
7245   {
7246     ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
7247     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
7248   };
7249 
to_string(DescriptorSetLayoutCreateFlagBits value)7250   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
7251   {
7252     switch ( value )
7253     {
7254       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
7255       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT : return "UpdateAfterBindPoolEXT";
7256       default: return "invalid";
7257     }
7258   }
7259 
7260   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits, VkDescriptorSetLayoutCreateFlags>;
7261 
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)7262   VULKAN_HPP_INLINE DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 )
7263   {
7264     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
7265   }
7266 
operator ~(DescriptorSetLayoutCreateFlagBits bits)7267   VULKAN_HPP_INLINE DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits )
7268   {
7269     return ~( DescriptorSetLayoutCreateFlags( bits ) );
7270   }
7271 
7272   template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
7273   {
7274     enum
7275     {
7276       allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR) | VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT)
7277     };
7278   };
7279 
to_string(DescriptorSetLayoutCreateFlags value)7280   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value  )
7281   {
7282     if ( !value ) return "{}";
7283     std::string result;
7284 
7285     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
7286     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT ) result += "UpdateAfterBindPoolEXT | ";
7287     return "{ " + result.substr(0, result.size() - 3) + " }";
7288   }
7289 
7290   enum class DescriptorUpdateTemplateCreateFlagBits
7291   {};
7292 
to_string(DescriptorUpdateTemplateCreateFlagBits)7293   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
7294   {
7295     return "(void)";
7296   }
7297 
7298   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits, VkDescriptorUpdateTemplateCreateFlags>;
7299 
7300   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
7301 
to_string(DescriptorUpdateTemplateCreateFlags)7302   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags  )
7303   {
7304     return "{}";
7305   }
7306 
7307   enum class DeviceCreateFlagBits
7308   {};
7309 
to_string(DeviceCreateFlagBits)7310   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
7311   {
7312     return "(void)";
7313   }
7314 
7315   using DeviceCreateFlags = Flags<DeviceCreateFlagBits, VkDeviceCreateFlags>;
7316 
to_string(DeviceCreateFlags)7317   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags  )
7318   {
7319     return "{}";
7320   }
7321 
7322   enum class DeviceGroupPresentModeFlagBitsKHR
7323   {
7324     eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
7325     eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
7326     eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
7327     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
7328   };
7329 
to_string(DeviceGroupPresentModeFlagBitsKHR value)7330   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
7331   {
7332     switch ( value )
7333     {
7334       case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
7335       case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
7336       case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
7337       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
7338       default: return "invalid";
7339     }
7340   }
7341 
7342   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR, VkDeviceGroupPresentModeFlagsKHR>;
7343 
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)7344   VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 )
7345   {
7346     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
7347   }
7348 
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)7349   VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits )
7350   {
7351     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
7352   }
7353 
7354   template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
7355   {
7356     enum
7357     {
7358       allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
7359     };
7360   };
7361 
to_string(DeviceGroupPresentModeFlagsKHR value)7362   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value  )
7363   {
7364     if ( !value ) return "{}";
7365     std::string result;
7366 
7367     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
7368     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
7369     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
7370     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
7371     return "{ " + result.substr(0, result.size() - 3) + " }";
7372   }
7373 
7374   enum class DeviceQueueCreateFlagBits
7375   {
7376     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
7377   };
7378 
to_string(DeviceQueueCreateFlagBits value)7379   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
7380   {
7381     switch ( value )
7382     {
7383       case DeviceQueueCreateFlagBits::eProtected : return "Protected";
7384       default: return "invalid";
7385     }
7386   }
7387 
7388   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits, VkDeviceQueueCreateFlags>;
7389 
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)7390   VULKAN_HPP_INLINE DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 )
7391   {
7392     return DeviceQueueCreateFlags( bit0 ) | bit1;
7393   }
7394 
operator ~(DeviceQueueCreateFlagBits bits)7395   VULKAN_HPP_INLINE DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits )
7396   {
7397     return ~( DeviceQueueCreateFlags( bits ) );
7398   }
7399 
7400   template <> struct FlagTraits<DeviceQueueCreateFlagBits>
7401   {
7402     enum
7403     {
7404       allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
7405     };
7406   };
7407 
to_string(DeviceQueueCreateFlags value)7408   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value  )
7409   {
7410     if ( !value ) return "{}";
7411     std::string result;
7412 
7413     if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
7414     return "{ " + result.substr(0, result.size() - 3) + " }";
7415   }
7416 
7417   enum class DisplayModeCreateFlagBitsKHR
7418   {};
7419 
to_string(DisplayModeCreateFlagBitsKHR)7420   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
7421   {
7422     return "(void)";
7423   }
7424 
7425   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR, VkDisplayModeCreateFlagsKHR>;
7426 
to_string(DisplayModeCreateFlagsKHR)7427   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR  )
7428   {
7429     return "{}";
7430   }
7431 
7432   enum class DisplayPlaneAlphaFlagBitsKHR
7433   {
7434     eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
7435     eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
7436     ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
7437     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
7438   };
7439 
to_string(DisplayPlaneAlphaFlagBitsKHR value)7440   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
7441   {
7442     switch ( value )
7443     {
7444       case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
7445       case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
7446       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
7447       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
7448       default: return "invalid";
7449     }
7450   }
7451 
7452   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR, VkDisplayPlaneAlphaFlagsKHR>;
7453 
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)7454   VULKAN_HPP_INLINE DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 )
7455   {
7456     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
7457   }
7458 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)7459   VULKAN_HPP_INLINE DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits )
7460   {
7461     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
7462   }
7463 
7464   template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
7465   {
7466     enum
7467     {
7468       allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
7469     };
7470   };
7471 
to_string(DisplayPlaneAlphaFlagsKHR value)7472   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value  )
7473   {
7474     if ( !value ) return "{}";
7475     std::string result;
7476 
7477     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
7478     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
7479     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
7480     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
7481     return "{ " + result.substr(0, result.size() - 3) + " }";
7482   }
7483 
7484   enum class DisplaySurfaceCreateFlagBitsKHR
7485   {};
7486 
to_string(DisplaySurfaceCreateFlagBitsKHR)7487   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
7488   {
7489     return "(void)";
7490   }
7491 
7492   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR, VkDisplaySurfaceCreateFlagsKHR>;
7493 
to_string(DisplaySurfaceCreateFlagsKHR)7494   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR  )
7495   {
7496     return "{}";
7497   }
7498 
7499   enum class EventCreateFlagBits
7500   {};
7501 
to_string(EventCreateFlagBits)7502   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
7503   {
7504     return "(void)";
7505   }
7506 
7507   using EventCreateFlags = Flags<EventCreateFlagBits, VkEventCreateFlags>;
7508 
to_string(EventCreateFlags)7509   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags  )
7510   {
7511     return "{}";
7512   }
7513 
7514   enum class ExternalFenceFeatureFlagBits
7515   {
7516     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
7517     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
7518     eExportableKHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,
7519     eImportableKHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR
7520   };
7521 
to_string(ExternalFenceFeatureFlagBits value)7522   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
7523   {
7524     switch ( value )
7525     {
7526       case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
7527       case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
7528       default: return "invalid";
7529     }
7530   }
7531 
7532   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits, VkExternalFenceFeatureFlags>;
7533 
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)7534   VULKAN_HPP_INLINE ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 )
7535   {
7536     return ExternalFenceFeatureFlags( bit0 ) | bit1;
7537   }
7538 
operator ~(ExternalFenceFeatureFlagBits bits)7539   VULKAN_HPP_INLINE ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits )
7540   {
7541     return ~( ExternalFenceFeatureFlags( bits ) );
7542   }
7543 
7544   template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
7545   {
7546     enum
7547     {
7548       allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
7549     };
7550   };
7551 
7552   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
7553 
to_string(ExternalFenceFeatureFlags value)7554   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value  )
7555   {
7556     if ( !value ) return "{}";
7557     std::string result;
7558 
7559     if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
7560     if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
7561     return "{ " + result.substr(0, result.size() - 3) + " }";
7562   }
7563 
7564   enum class ExternalFenceHandleTypeFlagBits
7565   {
7566     eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
7567     eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
7568     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
7569     eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
7570     eOpaqueFdKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
7571     eOpaqueWin32KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
7572     eOpaqueWin32KmtKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
7573     eSyncFdKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR
7574   };
7575 
to_string(ExternalFenceHandleTypeFlagBits value)7576   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
7577   {
7578     switch ( value )
7579     {
7580       case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
7581       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
7582       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
7583       case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
7584       default: return "invalid";
7585     }
7586   }
7587 
7588   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits, VkExternalFenceHandleTypeFlags>;
7589 
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)7590   VULKAN_HPP_INLINE ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 )
7591   {
7592     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
7593   }
7594 
operator ~(ExternalFenceHandleTypeFlagBits bits)7595   VULKAN_HPP_INLINE ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits )
7596   {
7597     return ~( ExternalFenceHandleTypeFlags( bits ) );
7598   }
7599 
7600   template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
7601   {
7602     enum
7603     {
7604       allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
7605     };
7606   };
7607 
7608   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
7609 
to_string(ExternalFenceHandleTypeFlags value)7610   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value  )
7611   {
7612     if ( !value ) return "{}";
7613     std::string result;
7614 
7615     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
7616     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
7617     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
7618     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
7619     return "{ " + result.substr(0, result.size() - 3) + " }";
7620   }
7621 
7622   enum class ExternalMemoryFeatureFlagBits
7623   {
7624     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
7625     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
7626     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
7627     eDedicatedOnlyKHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR,
7628     eExportableKHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,
7629     eImportableKHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR
7630   };
7631 
to_string(ExternalMemoryFeatureFlagBits value)7632   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
7633   {
7634     switch ( value )
7635     {
7636       case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
7637       case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
7638       case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
7639       default: return "invalid";
7640     }
7641   }
7642 
7643   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits, VkExternalMemoryFeatureFlags>;
7644 
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)7645   VULKAN_HPP_INLINE ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 )
7646   {
7647     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
7648   }
7649 
operator ~(ExternalMemoryFeatureFlagBits bits)7650   VULKAN_HPP_INLINE ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits )
7651   {
7652     return ~( ExternalMemoryFeatureFlags( bits ) );
7653   }
7654 
7655   template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
7656   {
7657     enum
7658     {
7659       allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
7660     };
7661   };
7662 
7663   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
7664 
to_string(ExternalMemoryFeatureFlags value)7665   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value  )
7666   {
7667     if ( !value ) return "{}";
7668     std::string result;
7669 
7670     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
7671     if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
7672     if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
7673     return "{ " + result.substr(0, result.size() - 3) + " }";
7674   }
7675 
7676   enum class ExternalMemoryFeatureFlagBitsNV
7677   {
7678     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
7679     eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
7680     eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
7681   };
7682 
to_string(ExternalMemoryFeatureFlagBitsNV value)7683   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
7684   {
7685     switch ( value )
7686     {
7687       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
7688       case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
7689       case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
7690       default: return "invalid";
7691     }
7692   }
7693 
7694   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV, VkExternalMemoryFeatureFlagsNV>;
7695 
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)7696   VULKAN_HPP_INLINE ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 )
7697   {
7698     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
7699   }
7700 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)7701   VULKAN_HPP_INLINE ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits )
7702   {
7703     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
7704   }
7705 
7706   template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
7707   {
7708     enum
7709     {
7710       allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
7711     };
7712   };
7713 
to_string(ExternalMemoryFeatureFlagsNV value)7714   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value  )
7715   {
7716     if ( !value ) return "{}";
7717     std::string result;
7718 
7719     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
7720     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
7721     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
7722     return "{ " + result.substr(0, result.size() - 3) + " }";
7723   }
7724 
7725   enum class ExternalMemoryHandleTypeFlagBits
7726   {
7727     eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
7728     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
7729     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
7730     eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
7731     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
7732     eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
7733     eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
7734     eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
7735     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
7736     eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
7737     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
7738     eOpaqueFdKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
7739     eOpaqueWin32KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
7740     eOpaqueWin32KmtKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
7741     eD3D11TextureKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,
7742     eD3D11TextureKmtKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,
7743     eD3D12HeapKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,
7744     eD3D12ResourceKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR
7745   };
7746 
to_string(ExternalMemoryHandleTypeFlagBits value)7747   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
7748   {
7749     switch ( value )
7750     {
7751       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
7752       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
7753       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
7754       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
7755       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
7756       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
7757       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
7758       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
7759       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
7760       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
7761       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
7762       default: return "invalid";
7763     }
7764   }
7765 
7766   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits, VkExternalMemoryHandleTypeFlags>;
7767 
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)7768   VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 )
7769   {
7770     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
7771   }
7772 
operator ~(ExternalMemoryHandleTypeFlagBits bits)7773   VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits )
7774   {
7775     return ~( ExternalMemoryHandleTypeFlags( bits ) );
7776   }
7777 
7778   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
7779   {
7780     enum
7781     {
7782       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)
7783     };
7784   };
7785 
7786   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
7787 
to_string(ExternalMemoryHandleTypeFlags value)7788   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value  )
7789   {
7790     if ( !value ) return "{}";
7791     std::string result;
7792 
7793     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
7794     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
7795     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
7796     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
7797     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
7798     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
7799     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
7800     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
7801     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
7802     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
7803     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
7804     return "{ " + result.substr(0, result.size() - 3) + " }";
7805   }
7806 
7807   enum class ExternalMemoryHandleTypeFlagBitsNV
7808   {
7809     eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
7810     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
7811     eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
7812     eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
7813   };
7814 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)7815   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
7816   {
7817     switch ( value )
7818     {
7819       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
7820       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
7821       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
7822       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
7823       default: return "invalid";
7824     }
7825   }
7826 
7827   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV, VkExternalMemoryHandleTypeFlagsNV>;
7828 
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)7829   VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 )
7830   {
7831     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
7832   }
7833 
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)7834   VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits )
7835   {
7836     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
7837   }
7838 
7839   template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
7840   {
7841     enum
7842     {
7843       allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
7844     };
7845   };
7846 
to_string(ExternalMemoryHandleTypeFlagsNV value)7847   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value  )
7848   {
7849     if ( !value ) return "{}";
7850     std::string result;
7851 
7852     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
7853     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
7854     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
7855     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
7856     return "{ " + result.substr(0, result.size() - 3) + " }";
7857   }
7858 
7859   enum class ExternalSemaphoreFeatureFlagBits
7860   {
7861     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
7862     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
7863     eExportableKHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,
7864     eImportableKHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR
7865   };
7866 
to_string(ExternalSemaphoreFeatureFlagBits value)7867   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
7868   {
7869     switch ( value )
7870     {
7871       case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
7872       case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
7873       default: return "invalid";
7874     }
7875   }
7876 
7877   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits, VkExternalSemaphoreFeatureFlags>;
7878 
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)7879   VULKAN_HPP_INLINE ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 )
7880   {
7881     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
7882   }
7883 
operator ~(ExternalSemaphoreFeatureFlagBits bits)7884   VULKAN_HPP_INLINE ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits )
7885   {
7886     return ~( ExternalSemaphoreFeatureFlags( bits ) );
7887   }
7888 
7889   template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
7890   {
7891     enum
7892     {
7893       allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
7894     };
7895   };
7896 
7897   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
7898 
to_string(ExternalSemaphoreFeatureFlags value)7899   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value  )
7900   {
7901     if ( !value ) return "{}";
7902     std::string result;
7903 
7904     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
7905     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
7906     return "{ " + result.substr(0, result.size() - 3) + " }";
7907   }
7908 
7909   enum class ExternalSemaphoreHandleTypeFlagBits
7910   {
7911     eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
7912     eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
7913     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
7914     eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
7915     eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
7916     eOpaqueFdKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
7917     eOpaqueWin32KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
7918     eOpaqueWin32KmtKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
7919     eD3D12FenceKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,
7920     eSyncFdKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR
7921   };
7922 
to_string(ExternalSemaphoreHandleTypeFlagBits value)7923   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
7924   {
7925     switch ( value )
7926     {
7927       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
7928       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
7929       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
7930       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
7931       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
7932       default: return "invalid";
7933     }
7934   }
7935 
7936   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits, VkExternalSemaphoreHandleTypeFlags>;
7937 
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)7938   VULKAN_HPP_INLINE ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 )
7939   {
7940     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
7941   }
7942 
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)7943   VULKAN_HPP_INLINE ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits )
7944   {
7945     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
7946   }
7947 
7948   template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
7949   {
7950     enum
7951     {
7952       allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
7953     };
7954   };
7955 
7956   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
7957 
to_string(ExternalSemaphoreHandleTypeFlags value)7958   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value  )
7959   {
7960     if ( !value ) return "{}";
7961     std::string result;
7962 
7963     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
7964     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
7965     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
7966     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
7967     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
7968     return "{ " + result.substr(0, result.size() - 3) + " }";
7969   }
7970 
7971   enum class FenceCreateFlagBits
7972   {
7973     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
7974   };
7975 
to_string(FenceCreateFlagBits value)7976   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
7977   {
7978     switch ( value )
7979     {
7980       case FenceCreateFlagBits::eSignaled : return "Signaled";
7981       default: return "invalid";
7982     }
7983   }
7984 
7985   using FenceCreateFlags = Flags<FenceCreateFlagBits, VkFenceCreateFlags>;
7986 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)7987   VULKAN_HPP_INLINE FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 )
7988   {
7989     return FenceCreateFlags( bit0 ) | bit1;
7990   }
7991 
operator ~(FenceCreateFlagBits bits)7992   VULKAN_HPP_INLINE FenceCreateFlags operator~( FenceCreateFlagBits bits )
7993   {
7994     return ~( FenceCreateFlags( bits ) );
7995   }
7996 
7997   template <> struct FlagTraits<FenceCreateFlagBits>
7998   {
7999     enum
8000     {
8001       allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
8002     };
8003   };
8004 
to_string(FenceCreateFlags value)8005   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value  )
8006   {
8007     if ( !value ) return "{}";
8008     std::string result;
8009 
8010     if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
8011     return "{ " + result.substr(0, result.size() - 3) + " }";
8012   }
8013 
8014   enum class FenceImportFlagBits
8015   {
8016     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT,
8017     eTemporaryKHR = VK_FENCE_IMPORT_TEMPORARY_BIT_KHR
8018   };
8019 
to_string(FenceImportFlagBits value)8020   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
8021   {
8022     switch ( value )
8023     {
8024       case FenceImportFlagBits::eTemporary : return "Temporary";
8025       default: return "invalid";
8026     }
8027   }
8028 
8029   using FenceImportFlags = Flags<FenceImportFlagBits, VkFenceImportFlags>;
8030 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)8031   VULKAN_HPP_INLINE FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 )
8032   {
8033     return FenceImportFlags( bit0 ) | bit1;
8034   }
8035 
operator ~(FenceImportFlagBits bits)8036   VULKAN_HPP_INLINE FenceImportFlags operator~( FenceImportFlagBits bits )
8037   {
8038     return ~( FenceImportFlags( bits ) );
8039   }
8040 
8041   template <> struct FlagTraits<FenceImportFlagBits>
8042   {
8043     enum
8044     {
8045       allFlags = VkFlags(FenceImportFlagBits::eTemporary)
8046     };
8047   };
8048 
8049   using FenceImportFlagsKHR = FenceImportFlags;
8050 
to_string(FenceImportFlags value)8051   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value  )
8052   {
8053     if ( !value ) return "{}";
8054     std::string result;
8055 
8056     if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
8057     return "{ " + result.substr(0, result.size() - 3) + " }";
8058   }
8059 
8060   enum class FormatFeatureFlagBits
8061   {
8062     eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
8063     eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
8064     eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
8065     eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
8066     eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
8067     eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
8068     eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
8069     eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
8070     eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
8071     eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
8072     eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
8073     eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
8074     eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
8075     eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
8076     eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
8077     eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
8078     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
8079     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
8080     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
8081     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
8082     eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
8083     eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
8084     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
8085     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
8086     eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
8087     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
8088     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
8089     eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
8090     eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
8091     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
8092     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
8093     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
8094     eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
8095     eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
8096     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
8097   };
8098 
to_string(FormatFeatureFlagBits value)8099   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
8100   {
8101     switch ( value )
8102     {
8103       case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
8104       case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
8105       case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
8106       case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
8107       case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
8108       case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
8109       case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
8110       case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
8111       case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
8112       case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
8113       case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
8114       case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
8115       case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
8116       case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
8117       case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
8118       case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
8119       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
8120       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
8121       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
8122       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
8123       case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
8124       case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
8125       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
8126       case FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT : return "SampledImageFilterMinmaxEXT";
8127       case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
8128       default: return "invalid";
8129     }
8130   }
8131 
8132   using FormatFeatureFlags = Flags<FormatFeatureFlagBits, VkFormatFeatureFlags>;
8133 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8134   VULKAN_HPP_INLINE FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 )
8135   {
8136     return FormatFeatureFlags( bit0 ) | bit1;
8137   }
8138 
operator ~(FormatFeatureFlagBits bits)8139   VULKAN_HPP_INLINE FormatFeatureFlags operator~( FormatFeatureFlagBits bits )
8140   {
8141     return ~( FormatFeatureFlags( bits ) );
8142   }
8143 
8144   template <> struct FlagTraits<FormatFeatureFlagBits>
8145   {
8146     enum
8147     {
8148       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::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT)
8149     };
8150   };
8151 
to_string(FormatFeatureFlags value)8152   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value  )
8153   {
8154     if ( !value ) return "{}";
8155     std::string result;
8156 
8157     if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
8158     if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
8159     if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
8160     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
8161     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
8162     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
8163     if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
8164     if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
8165     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
8166     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
8167     if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
8168     if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
8169     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
8170     if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
8171     if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
8172     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
8173     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
8174     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
8175     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
8176     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
8177     if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
8178     if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
8179     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
8180     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT ) result += "SampledImageFilterMinmaxEXT | ";
8181     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
8182     return "{ " + result.substr(0, result.size() - 3) + " }";
8183   }
8184 
8185   enum class FramebufferCreateFlagBits
8186   {
8187     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
8188   };
8189 
to_string(FramebufferCreateFlagBits value)8190   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
8191   {
8192     switch ( value )
8193     {
8194       case FramebufferCreateFlagBits::eImagelessKHR : return "ImagelessKHR";
8195       default: return "invalid";
8196     }
8197   }
8198 
8199   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits, VkFramebufferCreateFlags>;
8200 
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)8201   VULKAN_HPP_INLINE FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 )
8202   {
8203     return FramebufferCreateFlags( bit0 ) | bit1;
8204   }
8205 
operator ~(FramebufferCreateFlagBits bits)8206   VULKAN_HPP_INLINE FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits )
8207   {
8208     return ~( FramebufferCreateFlags( bits ) );
8209   }
8210 
8211   template <> struct FlagTraits<FramebufferCreateFlagBits>
8212   {
8213     enum
8214     {
8215       allFlags = VkFlags(FramebufferCreateFlagBits::eImagelessKHR)
8216     };
8217   };
8218 
to_string(FramebufferCreateFlags value)8219   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value  )
8220   {
8221     if ( !value ) return "{}";
8222     std::string result;
8223 
8224     if ( value & FramebufferCreateFlagBits::eImagelessKHR ) result += "ImagelessKHR | ";
8225     return "{ " + result.substr(0, result.size() - 3) + " }";
8226   }
8227 
8228   enum class GeometryFlagBitsNV
8229   {
8230     eOpaque = VK_GEOMETRY_OPAQUE_BIT_NV,
8231     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV
8232   };
8233 
to_string(GeometryFlagBitsNV value)8234   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsNV value )
8235   {
8236     switch ( value )
8237     {
8238       case GeometryFlagBitsNV::eOpaque : return "Opaque";
8239       case GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
8240       default: return "invalid";
8241     }
8242   }
8243 
8244   using GeometryFlagsNV = Flags<GeometryFlagBitsNV, VkGeometryFlagsNV>;
8245 
operator |(GeometryFlagBitsNV bit0,GeometryFlagBitsNV bit1)8246   VULKAN_HPP_INLINE GeometryFlagsNV operator|( GeometryFlagBitsNV bit0, GeometryFlagBitsNV bit1 )
8247   {
8248     return GeometryFlagsNV( bit0 ) | bit1;
8249   }
8250 
operator ~(GeometryFlagBitsNV bits)8251   VULKAN_HPP_INLINE GeometryFlagsNV operator~( GeometryFlagBitsNV bits )
8252   {
8253     return ~( GeometryFlagsNV( bits ) );
8254   }
8255 
8256   template <> struct FlagTraits<GeometryFlagBitsNV>
8257   {
8258     enum
8259     {
8260       allFlags = VkFlags(GeometryFlagBitsNV::eOpaque) | VkFlags(GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation)
8261     };
8262   };
8263 
to_string(GeometryFlagsNV value)8264   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsNV value  )
8265   {
8266     if ( !value ) return "{}";
8267     std::string result;
8268 
8269     if ( value & GeometryFlagBitsNV::eOpaque ) result += "Opaque | ";
8270     if ( value & GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
8271     return "{ " + result.substr(0, result.size() - 3) + " }";
8272   }
8273 
8274   enum class GeometryInstanceFlagBitsNV
8275   {
8276     eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
8277     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
8278     eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,
8279     eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV
8280   };
8281 
to_string(GeometryInstanceFlagBitsNV value)8282   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsNV value )
8283   {
8284     switch ( value )
8285     {
8286       case GeometryInstanceFlagBitsNV::eTriangleCullDisable : return "TriangleCullDisable";
8287       case GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
8288       case GeometryInstanceFlagBitsNV::eForceOpaque : return "ForceOpaque";
8289       case GeometryInstanceFlagBitsNV::eForceNoOpaque : return "ForceNoOpaque";
8290       default: return "invalid";
8291     }
8292   }
8293 
8294   using GeometryInstanceFlagsNV = Flags<GeometryInstanceFlagBitsNV, VkGeometryInstanceFlagsNV>;
8295 
operator |(GeometryInstanceFlagBitsNV bit0,GeometryInstanceFlagBitsNV bit1)8296   VULKAN_HPP_INLINE GeometryInstanceFlagsNV operator|( GeometryInstanceFlagBitsNV bit0, GeometryInstanceFlagBitsNV bit1 )
8297   {
8298     return GeometryInstanceFlagsNV( bit0 ) | bit1;
8299   }
8300 
operator ~(GeometryInstanceFlagBitsNV bits)8301   VULKAN_HPP_INLINE GeometryInstanceFlagsNV operator~( GeometryInstanceFlagBitsNV bits )
8302   {
8303     return ~( GeometryInstanceFlagsNV( bits ) );
8304   }
8305 
8306   template <> struct FlagTraits<GeometryInstanceFlagBitsNV>
8307   {
8308     enum
8309     {
8310       allFlags = VkFlags(GeometryInstanceFlagBitsNV::eTriangleCullDisable) | VkFlags(GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsNV::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsNV::eForceNoOpaque)
8311     };
8312   };
8313 
to_string(GeometryInstanceFlagsNV value)8314   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsNV value  )
8315   {
8316     if ( !value ) return "{}";
8317     std::string result;
8318 
8319     if ( value & GeometryInstanceFlagBitsNV::eTriangleCullDisable ) result += "TriangleCullDisable | ";
8320     if ( value & GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
8321     if ( value & GeometryInstanceFlagBitsNV::eForceOpaque ) result += "ForceOpaque | ";
8322     if ( value & GeometryInstanceFlagBitsNV::eForceNoOpaque ) result += "ForceNoOpaque | ";
8323     return "{ " + result.substr(0, result.size() - 3) + " }";
8324   }
8325 
8326   enum class HeadlessSurfaceCreateFlagBitsEXT
8327   {};
8328 
to_string(HeadlessSurfaceCreateFlagBitsEXT)8329   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
8330   {
8331     return "(void)";
8332   }
8333 
8334   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT, VkHeadlessSurfaceCreateFlagsEXT>;
8335 
to_string(HeadlessSurfaceCreateFlagsEXT)8336   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT  )
8337   {
8338     return "{}";
8339   }
8340 
8341 #ifdef VK_USE_PLATFORM_IOS_MVK
8342   enum class IOSSurfaceCreateFlagBitsMVK
8343   {};
8344 
to_string(IOSSurfaceCreateFlagBitsMVK)8345   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
8346   {
8347     return "(void)";
8348   }
8349 
8350   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK, VkIOSSurfaceCreateFlagsMVK>;
8351 
to_string(IOSSurfaceCreateFlagsMVK)8352   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK  )
8353   {
8354     return "{}";
8355   }
8356 #endif /*VK_USE_PLATFORM_IOS_MVK*/
8357 
8358   enum class ImageAspectFlagBits
8359   {
8360     eColor = VK_IMAGE_ASPECT_COLOR_BIT,
8361     eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
8362     eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
8363     eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
8364     ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
8365     ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
8366     ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
8367     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
8368     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
8369     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
8370     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
8371     ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
8372     ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
8373     ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
8374   };
8375 
to_string(ImageAspectFlagBits value)8376   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
8377   {
8378     switch ( value )
8379     {
8380       case ImageAspectFlagBits::eColor : return "Color";
8381       case ImageAspectFlagBits::eDepth : return "Depth";
8382       case ImageAspectFlagBits::eStencil : return "Stencil";
8383       case ImageAspectFlagBits::eMetadata : return "Metadata";
8384       case ImageAspectFlagBits::ePlane0 : return "Plane0";
8385       case ImageAspectFlagBits::ePlane1 : return "Plane1";
8386       case ImageAspectFlagBits::ePlane2 : return "Plane2";
8387       case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
8388       case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
8389       case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
8390       case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
8391       default: return "invalid";
8392     }
8393   }
8394 
8395   using ImageAspectFlags = Flags<ImageAspectFlagBits, VkImageAspectFlags>;
8396 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)8397   VULKAN_HPP_INLINE ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 )
8398   {
8399     return ImageAspectFlags( bit0 ) | bit1;
8400   }
8401 
operator ~(ImageAspectFlagBits bits)8402   VULKAN_HPP_INLINE ImageAspectFlags operator~( ImageAspectFlagBits bits )
8403   {
8404     return ~( ImageAspectFlags( bits ) );
8405   }
8406 
8407   template <> struct FlagTraits<ImageAspectFlagBits>
8408   {
8409     enum
8410     {
8411       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)
8412     };
8413   };
8414 
to_string(ImageAspectFlags value)8415   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value  )
8416   {
8417     if ( !value ) return "{}";
8418     std::string result;
8419 
8420     if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
8421     if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
8422     if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
8423     if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
8424     if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
8425     if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
8426     if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
8427     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
8428     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
8429     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
8430     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
8431     return "{ " + result.substr(0, result.size() - 3) + " }";
8432   }
8433 
8434   enum class ImageCreateFlagBits
8435   {
8436     eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
8437     eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
8438     eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
8439     eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
8440     eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
8441     eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
8442     eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
8443     e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
8444     eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
8445     eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
8446     eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
8447     eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
8448     eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
8449     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
8450     eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
8451     eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
8452     e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
8453     eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
8454     eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
8455     eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
8456     eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR
8457   };
8458 
to_string(ImageCreateFlagBits value)8459   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
8460   {
8461     switch ( value )
8462     {
8463       case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
8464       case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
8465       case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
8466       case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
8467       case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
8468       case ImageCreateFlagBits::eAlias : return "Alias";
8469       case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
8470       case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
8471       case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
8472       case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
8473       case ImageCreateFlagBits::eProtected : return "Protected";
8474       case ImageCreateFlagBits::eDisjoint : return "Disjoint";
8475       case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
8476       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
8477       case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
8478       default: return "invalid";
8479     }
8480   }
8481 
8482   using ImageCreateFlags = Flags<ImageCreateFlagBits, VkImageCreateFlags>;
8483 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8484   VULKAN_HPP_INLINE ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 )
8485   {
8486     return ImageCreateFlags( bit0 ) | bit1;
8487   }
8488 
operator ~(ImageCreateFlagBits bits)8489   VULKAN_HPP_INLINE ImageCreateFlags operator~( ImageCreateFlagBits bits )
8490   {
8491     return ~( ImageCreateFlags( bits ) );
8492   }
8493 
8494   template <> struct FlagTraits<ImageCreateFlagBits>
8495   {
8496     enum
8497     {
8498       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)
8499     };
8500   };
8501 
to_string(ImageCreateFlags value)8502   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value  )
8503   {
8504     if ( !value ) return "{}";
8505     std::string result;
8506 
8507     if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
8508     if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
8509     if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
8510     if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
8511     if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
8512     if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
8513     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
8514     if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
8515     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
8516     if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
8517     if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
8518     if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
8519     if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
8520     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
8521     if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
8522     return "{ " + result.substr(0, result.size() - 3) + " }";
8523   }
8524 
8525 #ifdef VK_USE_PLATFORM_FUCHSIA
8526   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA
8527   {};
8528 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)8529   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
8530   {
8531     return "(void)";
8532   }
8533 
8534   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA, VkImagePipeSurfaceCreateFlagsFUCHSIA>;
8535 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)8536   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA  )
8537   {
8538     return "{}";
8539   }
8540 #endif /*VK_USE_PLATFORM_FUCHSIA*/
8541 
8542   enum class ImageUsageFlagBits
8543   {
8544     eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
8545     eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
8546     eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
8547     eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
8548     eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
8549     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
8550     eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
8551     eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
8552     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
8553     eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
8554   };
8555 
to_string(ImageUsageFlagBits value)8556   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
8557   {
8558     switch ( value )
8559     {
8560       case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
8561       case ImageUsageFlagBits::eTransferDst : return "TransferDst";
8562       case ImageUsageFlagBits::eSampled : return "Sampled";
8563       case ImageUsageFlagBits::eStorage : return "Storage";
8564       case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
8565       case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
8566       case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
8567       case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
8568       case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
8569       case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
8570       default: return "invalid";
8571     }
8572   }
8573 
8574   using ImageUsageFlags = Flags<ImageUsageFlagBits, VkImageUsageFlags>;
8575 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8576   VULKAN_HPP_INLINE ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 )
8577   {
8578     return ImageUsageFlags( bit0 ) | bit1;
8579   }
8580 
operator ~(ImageUsageFlagBits bits)8581   VULKAN_HPP_INLINE ImageUsageFlags operator~( ImageUsageFlagBits bits )
8582   {
8583     return ~( ImageUsageFlags( bits ) );
8584   }
8585 
8586   template <> struct FlagTraits<ImageUsageFlagBits>
8587   {
8588     enum
8589     {
8590       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)
8591     };
8592   };
8593 
to_string(ImageUsageFlags value)8594   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value  )
8595   {
8596     if ( !value ) return "{}";
8597     std::string result;
8598 
8599     if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
8600     if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
8601     if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
8602     if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
8603     if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
8604     if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
8605     if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
8606     if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
8607     if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
8608     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
8609     return "{ " + result.substr(0, result.size() - 3) + " }";
8610   }
8611 
8612   enum class ImageViewCreateFlagBits
8613   {
8614     eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
8615   };
8616 
to_string(ImageViewCreateFlagBits value)8617   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
8618   {
8619     switch ( value )
8620     {
8621       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
8622       default: return "invalid";
8623     }
8624   }
8625 
8626   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits, VkImageViewCreateFlags>;
8627 
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)8628   VULKAN_HPP_INLINE ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 )
8629   {
8630     return ImageViewCreateFlags( bit0 ) | bit1;
8631   }
8632 
operator ~(ImageViewCreateFlagBits bits)8633   VULKAN_HPP_INLINE ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits )
8634   {
8635     return ~( ImageViewCreateFlags( bits ) );
8636   }
8637 
8638   template <> struct FlagTraits<ImageViewCreateFlagBits>
8639   {
8640     enum
8641     {
8642       allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT)
8643     };
8644   };
8645 
to_string(ImageViewCreateFlags value)8646   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value  )
8647   {
8648     if ( !value ) return "{}";
8649     std::string result;
8650 
8651     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
8652     return "{ " + result.substr(0, result.size() - 3) + " }";
8653   }
8654 
8655   enum class IndirectCommandsLayoutUsageFlagBitsNVX
8656   {
8657     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX,
8658     eSparseSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX,
8659     eEmptyExecutions = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX,
8660     eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
8661   };
8662 
to_string(IndirectCommandsLayoutUsageFlagBitsNVX value)8663   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNVX value )
8664   {
8665     switch ( value )
8666     {
8667       case IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences : return "UnorderedSequences";
8668       case IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences : return "SparseSequences";
8669       case IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions : return "EmptyExecutions";
8670       case IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences : return "IndexedSequences";
8671       default: return "invalid";
8672     }
8673   }
8674 
8675   using IndirectCommandsLayoutUsageFlagsNVX = Flags<IndirectCommandsLayoutUsageFlagBitsNVX, VkIndirectCommandsLayoutUsageFlagsNVX>;
8676 
operator |(IndirectCommandsLayoutUsageFlagBitsNVX bit0,IndirectCommandsLayoutUsageFlagBitsNVX bit1)8677   VULKAN_HPP_INLINE IndirectCommandsLayoutUsageFlagsNVX operator|( IndirectCommandsLayoutUsageFlagBitsNVX bit0, IndirectCommandsLayoutUsageFlagBitsNVX bit1 )
8678   {
8679     return IndirectCommandsLayoutUsageFlagsNVX( bit0 ) | bit1;
8680   }
8681 
operator ~(IndirectCommandsLayoutUsageFlagBitsNVX bits)8682   VULKAN_HPP_INLINE IndirectCommandsLayoutUsageFlagsNVX operator~( IndirectCommandsLayoutUsageFlagBitsNVX bits )
8683   {
8684     return ~( IndirectCommandsLayoutUsageFlagsNVX( bits ) );
8685   }
8686 
8687   template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNVX>
8688   {
8689     enum
8690     {
8691       allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences)
8692     };
8693   };
8694 
to_string(IndirectCommandsLayoutUsageFlagsNVX value)8695   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNVX value  )
8696   {
8697     if ( !value ) return "{}";
8698     std::string result;
8699 
8700     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences ) result += "UnorderedSequences | ";
8701     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences ) result += "SparseSequences | ";
8702     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions ) result += "EmptyExecutions | ";
8703     if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences ) result += "IndexedSequences | ";
8704     return "{ " + result.substr(0, result.size() - 3) + " }";
8705   }
8706 
8707   enum class InstanceCreateFlagBits
8708   {};
8709 
to_string(InstanceCreateFlagBits)8710   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
8711   {
8712     return "(void)";
8713   }
8714 
8715   using InstanceCreateFlags = Flags<InstanceCreateFlagBits, VkInstanceCreateFlags>;
8716 
to_string(InstanceCreateFlags)8717   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags  )
8718   {
8719     return "{}";
8720   }
8721 
8722 #ifdef VK_USE_PLATFORM_MACOS_MVK
8723   enum class MacOSSurfaceCreateFlagBitsMVK
8724   {};
8725 
to_string(MacOSSurfaceCreateFlagBitsMVK)8726   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
8727   {
8728     return "(void)";
8729   }
8730 
8731   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK, VkMacOSSurfaceCreateFlagsMVK>;
8732 
to_string(MacOSSurfaceCreateFlagsMVK)8733   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK  )
8734   {
8735     return "{}";
8736   }
8737 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
8738 
8739   enum class MemoryAllocateFlagBits
8740   {
8741     eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
8742     eDeviceMaskKHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR
8743   };
8744 
to_string(MemoryAllocateFlagBits value)8745   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
8746   {
8747     switch ( value )
8748     {
8749       case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
8750       default: return "invalid";
8751     }
8752   }
8753 
8754   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits, VkMemoryAllocateFlags>;
8755 
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)8756   VULKAN_HPP_INLINE MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 )
8757   {
8758     return MemoryAllocateFlags( bit0 ) | bit1;
8759   }
8760 
operator ~(MemoryAllocateFlagBits bits)8761   VULKAN_HPP_INLINE MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits )
8762   {
8763     return ~( MemoryAllocateFlags( bits ) );
8764   }
8765 
8766   template <> struct FlagTraits<MemoryAllocateFlagBits>
8767   {
8768     enum
8769     {
8770       allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask)
8771     };
8772   };
8773 
8774   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
8775 
to_string(MemoryAllocateFlags value)8776   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value  )
8777   {
8778     if ( !value ) return "{}";
8779     std::string result;
8780 
8781     if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
8782     return "{ " + result.substr(0, result.size() - 3) + " }";
8783   }
8784 
8785   enum class MemoryHeapFlagBits
8786   {
8787     eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
8788     eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
8789     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
8790   };
8791 
to_string(MemoryHeapFlagBits value)8792   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
8793   {
8794     switch ( value )
8795     {
8796       case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
8797       case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
8798       default: return "invalid";
8799     }
8800   }
8801 
8802   using MemoryHeapFlags = Flags<MemoryHeapFlagBits, VkMemoryHeapFlags>;
8803 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8804   VULKAN_HPP_INLINE MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 )
8805   {
8806     return MemoryHeapFlags( bit0 ) | bit1;
8807   }
8808 
operator ~(MemoryHeapFlagBits bits)8809   VULKAN_HPP_INLINE MemoryHeapFlags operator~( MemoryHeapFlagBits bits )
8810   {
8811     return ~( MemoryHeapFlags( bits ) );
8812   }
8813 
8814   template <> struct FlagTraits<MemoryHeapFlagBits>
8815   {
8816     enum
8817     {
8818       allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
8819     };
8820   };
8821 
to_string(MemoryHeapFlags value)8822   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value  )
8823   {
8824     if ( !value ) return "{}";
8825     std::string result;
8826 
8827     if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
8828     if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
8829     return "{ " + result.substr(0, result.size() - 3) + " }";
8830   }
8831 
8832   enum class MemoryMapFlagBits
8833   {};
8834 
to_string(MemoryMapFlagBits)8835   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
8836   {
8837     return "(void)";
8838   }
8839 
8840   using MemoryMapFlags = Flags<MemoryMapFlagBits, VkMemoryMapFlags>;
8841 
to_string(MemoryMapFlags)8842   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags  )
8843   {
8844     return "{}";
8845   }
8846 
8847   enum class MemoryPropertyFlagBits
8848   {
8849     eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
8850     eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
8851     eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
8852     eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
8853     eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
8854     eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT,
8855     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
8856     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
8857   };
8858 
to_string(MemoryPropertyFlagBits value)8859   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
8860   {
8861     switch ( value )
8862     {
8863       case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
8864       case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
8865       case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
8866       case MemoryPropertyFlagBits::eHostCached : return "HostCached";
8867       case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
8868       case MemoryPropertyFlagBits::eProtected : return "Protected";
8869       case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD";
8870       case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD";
8871       default: return "invalid";
8872     }
8873   }
8874 
8875   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits, VkMemoryPropertyFlags>;
8876 
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8877   VULKAN_HPP_INLINE MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 )
8878   {
8879     return MemoryPropertyFlags( bit0 ) | bit1;
8880   }
8881 
operator ~(MemoryPropertyFlagBits bits)8882   VULKAN_HPP_INLINE MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits )
8883   {
8884     return ~( MemoryPropertyFlags( bits ) );
8885   }
8886 
8887   template <> struct FlagTraits<MemoryPropertyFlagBits>
8888   {
8889     enum
8890     {
8891       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)
8892     };
8893   };
8894 
to_string(MemoryPropertyFlags value)8895   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value  )
8896   {
8897     if ( !value ) return "{}";
8898     std::string result;
8899 
8900     if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
8901     if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
8902     if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
8903     if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
8904     if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
8905     if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
8906     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | ";
8907     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | ";
8908     return "{ " + result.substr(0, result.size() - 3) + " }";
8909   }
8910 
8911 #ifdef VK_USE_PLATFORM_METAL_EXT
8912   enum class MetalSurfaceCreateFlagBitsEXT
8913   {};
8914 
to_string(MetalSurfaceCreateFlagBitsEXT)8915   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
8916   {
8917     return "(void)";
8918   }
8919 
8920   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT, VkMetalSurfaceCreateFlagsEXT>;
8921 
to_string(MetalSurfaceCreateFlagsEXT)8922   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT  )
8923   {
8924     return "{}";
8925   }
8926 #endif /*VK_USE_PLATFORM_METAL_EXT*/
8927 
8928   enum class ObjectEntryUsageFlagBitsNVX
8929   {
8930     eGraphics = VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX,
8931     eCompute = VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX
8932   };
8933 
to_string(ObjectEntryUsageFlagBitsNVX value)8934   VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagBitsNVX value )
8935   {
8936     switch ( value )
8937     {
8938       case ObjectEntryUsageFlagBitsNVX::eGraphics : return "Graphics";
8939       case ObjectEntryUsageFlagBitsNVX::eCompute : return "Compute";
8940       default: return "invalid";
8941     }
8942   }
8943 
8944   using ObjectEntryUsageFlagsNVX = Flags<ObjectEntryUsageFlagBitsNVX, VkObjectEntryUsageFlagsNVX>;
8945 
operator |(ObjectEntryUsageFlagBitsNVX bit0,ObjectEntryUsageFlagBitsNVX bit1)8946   VULKAN_HPP_INLINE ObjectEntryUsageFlagsNVX operator|( ObjectEntryUsageFlagBitsNVX bit0, ObjectEntryUsageFlagBitsNVX bit1 )
8947   {
8948     return ObjectEntryUsageFlagsNVX( bit0 ) | bit1;
8949   }
8950 
operator ~(ObjectEntryUsageFlagBitsNVX bits)8951   VULKAN_HPP_INLINE ObjectEntryUsageFlagsNVX operator~( ObjectEntryUsageFlagBitsNVX bits )
8952   {
8953     return ~( ObjectEntryUsageFlagsNVX( bits ) );
8954   }
8955 
8956   template <> struct FlagTraits<ObjectEntryUsageFlagBitsNVX>
8957   {
8958     enum
8959     {
8960       allFlags = VkFlags(ObjectEntryUsageFlagBitsNVX::eGraphics) | VkFlags(ObjectEntryUsageFlagBitsNVX::eCompute)
8961     };
8962   };
8963 
to_string(ObjectEntryUsageFlagsNVX value)8964   VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagsNVX value  )
8965   {
8966     if ( !value ) return "{}";
8967     std::string result;
8968 
8969     if ( value & ObjectEntryUsageFlagBitsNVX::eGraphics ) result += "Graphics | ";
8970     if ( value & ObjectEntryUsageFlagBitsNVX::eCompute ) result += "Compute | ";
8971     return "{ " + result.substr(0, result.size() - 3) + " }";
8972   }
8973 
8974   enum class PeerMemoryFeatureFlagBits
8975   {
8976     eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
8977     eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
8978     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
8979     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
8980     eCopySrcKHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,
8981     eCopyDstKHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,
8982     eGenericSrcKHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,
8983     eGenericDstKHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR
8984   };
8985 
to_string(PeerMemoryFeatureFlagBits value)8986   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
8987   {
8988     switch ( value )
8989     {
8990       case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
8991       case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
8992       case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
8993       case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
8994       default: return "invalid";
8995     }
8996   }
8997 
8998   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits, VkPeerMemoryFeatureFlags>;
8999 
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)9000   VULKAN_HPP_INLINE PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 )
9001   {
9002     return PeerMemoryFeatureFlags( bit0 ) | bit1;
9003   }
9004 
operator ~(PeerMemoryFeatureFlagBits bits)9005   VULKAN_HPP_INLINE PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits )
9006   {
9007     return ~( PeerMemoryFeatureFlags( bits ) );
9008   }
9009 
9010   template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
9011   {
9012     enum
9013     {
9014       allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
9015     };
9016   };
9017 
9018   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
9019 
to_string(PeerMemoryFeatureFlags value)9020   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value  )
9021   {
9022     if ( !value ) return "{}";
9023     std::string result;
9024 
9025     if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
9026     if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
9027     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
9028     if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
9029     return "{ " + result.substr(0, result.size() - 3) + " }";
9030   }
9031 
9032   enum class PipelineCacheCreateFlagBits
9033   {};
9034 
to_string(PipelineCacheCreateFlagBits)9035   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits )
9036   {
9037     return "(void)";
9038   }
9039 
9040   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits, VkPipelineCacheCreateFlags>;
9041 
to_string(PipelineCacheCreateFlags)9042   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags  )
9043   {
9044     return "{}";
9045   }
9046 
9047   enum class PipelineColorBlendStateCreateFlagBits
9048   {};
9049 
to_string(PipelineColorBlendStateCreateFlagBits)9050   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
9051   {
9052     return "(void)";
9053   }
9054 
9055   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits, VkPipelineColorBlendStateCreateFlags>;
9056 
to_string(PipelineColorBlendStateCreateFlags)9057   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags  )
9058   {
9059     return "{}";
9060   }
9061 
9062   enum class PipelineCompilerControlFlagBitsAMD
9063   {};
9064 
to_string(PipelineCompilerControlFlagBitsAMD)9065   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
9066   {
9067     return "(void)";
9068   }
9069 
9070   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD, VkPipelineCompilerControlFlagsAMD>;
9071 
to_string(PipelineCompilerControlFlagsAMD)9072   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD  )
9073   {
9074     return "{}";
9075   }
9076 
9077   enum class PipelineCoverageModulationStateCreateFlagBitsNV
9078   {};
9079 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)9080   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
9081   {
9082     return "(void)";
9083   }
9084 
9085   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV, VkPipelineCoverageModulationStateCreateFlagsNV>;
9086 
to_string(PipelineCoverageModulationStateCreateFlagsNV)9087   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV  )
9088   {
9089     return "{}";
9090   }
9091 
9092   enum class PipelineCoverageReductionStateCreateFlagBitsNV
9093   {};
9094 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)9095   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
9096   {
9097     return "(void)";
9098   }
9099 
9100   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV, VkPipelineCoverageReductionStateCreateFlagsNV>;
9101 
to_string(PipelineCoverageReductionStateCreateFlagsNV)9102   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV  )
9103   {
9104     return "{}";
9105   }
9106 
9107   enum class PipelineCoverageToColorStateCreateFlagBitsNV
9108   {};
9109 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)9110   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
9111   {
9112     return "(void)";
9113   }
9114 
9115   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV, VkPipelineCoverageToColorStateCreateFlagsNV>;
9116 
to_string(PipelineCoverageToColorStateCreateFlagsNV)9117   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV  )
9118   {
9119     return "{}";
9120   }
9121 
9122   enum class PipelineCreateFlagBits
9123   {
9124     eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
9125     eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
9126     eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
9127     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
9128     eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE,
9129     eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
9130     eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
9131     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
9132     eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
9133     eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
9134   };
9135 
to_string(PipelineCreateFlagBits value)9136   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
9137   {
9138     switch ( value )
9139     {
9140       case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
9141       case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
9142       case PipelineCreateFlagBits::eDerivative : return "Derivative";
9143       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
9144       case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
9145       case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
9146       case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR";
9147       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR";
9148       default: return "invalid";
9149     }
9150   }
9151 
9152   using PipelineCreateFlags = Flags<PipelineCreateFlagBits, VkPipelineCreateFlags>;
9153 
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9154   VULKAN_HPP_INLINE PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 )
9155   {
9156     return PipelineCreateFlags( bit0 ) | bit1;
9157   }
9158 
operator ~(PipelineCreateFlagBits bits)9159   VULKAN_HPP_INLINE PipelineCreateFlags operator~( PipelineCreateFlagBits bits )
9160   {
9161     return ~( PipelineCreateFlags( bits ) );
9162   }
9163 
9164   template <> struct FlagTraits<PipelineCreateFlagBits>
9165   {
9166     enum
9167     {
9168       allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV) | VkFlags(PipelineCreateFlagBits::eCaptureStatisticsKHR) | VkFlags(PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR)
9169     };
9170   };
9171 
to_string(PipelineCreateFlags value)9172   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value  )
9173   {
9174     if ( !value ) return "{}";
9175     std::string result;
9176 
9177     if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
9178     if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
9179     if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
9180     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
9181     if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
9182     if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
9183     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | ";
9184     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | ";
9185     return "{ " + result.substr(0, result.size() - 3) + " }";
9186   }
9187 
9188   enum class PipelineCreationFeedbackFlagBitsEXT
9189   {
9190     eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
9191     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
9192     eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
9193   };
9194 
to_string(PipelineCreationFeedbackFlagBitsEXT value)9195   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
9196   {
9197     switch ( value )
9198     {
9199       case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
9200       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
9201       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
9202       default: return "invalid";
9203     }
9204   }
9205 
9206   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT, VkPipelineCreationFeedbackFlagsEXT>;
9207 
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)9208   VULKAN_HPP_INLINE PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 )
9209   {
9210     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
9211   }
9212 
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)9213   VULKAN_HPP_INLINE PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits )
9214   {
9215     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
9216   }
9217 
9218   template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
9219   {
9220     enum
9221     {
9222       allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
9223     };
9224   };
9225 
to_string(PipelineCreationFeedbackFlagsEXT value)9226   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value  )
9227   {
9228     if ( !value ) return "{}";
9229     std::string result;
9230 
9231     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
9232     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
9233     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
9234     return "{ " + result.substr(0, result.size() - 3) + " }";
9235   }
9236 
9237   enum class PipelineDepthStencilStateCreateFlagBits
9238   {};
9239 
to_string(PipelineDepthStencilStateCreateFlagBits)9240   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
9241   {
9242     return "(void)";
9243   }
9244 
9245   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits, VkPipelineDepthStencilStateCreateFlags>;
9246 
to_string(PipelineDepthStencilStateCreateFlags)9247   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags  )
9248   {
9249     return "{}";
9250   }
9251 
9252   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT
9253   {};
9254 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)9255   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
9256   {
9257     return "(void)";
9258   }
9259 
9260   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT, VkPipelineDiscardRectangleStateCreateFlagsEXT>;
9261 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)9262   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT  )
9263   {
9264     return "{}";
9265   }
9266 
9267   enum class PipelineDynamicStateCreateFlagBits
9268   {};
9269 
to_string(PipelineDynamicStateCreateFlagBits)9270   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
9271   {
9272     return "(void)";
9273   }
9274 
9275   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits, VkPipelineDynamicStateCreateFlags>;
9276 
to_string(PipelineDynamicStateCreateFlags)9277   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags  )
9278   {
9279     return "{}";
9280   }
9281 
9282   enum class PipelineInputAssemblyStateCreateFlagBits
9283   {};
9284 
to_string(PipelineInputAssemblyStateCreateFlagBits)9285   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
9286   {
9287     return "(void)";
9288   }
9289 
9290   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits, VkPipelineInputAssemblyStateCreateFlags>;
9291 
to_string(PipelineInputAssemblyStateCreateFlags)9292   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags  )
9293   {
9294     return "{}";
9295   }
9296 
9297   enum class PipelineLayoutCreateFlagBits
9298   {};
9299 
to_string(PipelineLayoutCreateFlagBits)9300   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
9301   {
9302     return "(void)";
9303   }
9304 
9305   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits, VkPipelineLayoutCreateFlags>;
9306 
to_string(PipelineLayoutCreateFlags)9307   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags  )
9308   {
9309     return "{}";
9310   }
9311 
9312   enum class PipelineMultisampleStateCreateFlagBits
9313   {};
9314 
to_string(PipelineMultisampleStateCreateFlagBits)9315   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
9316   {
9317     return "(void)";
9318   }
9319 
9320   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits, VkPipelineMultisampleStateCreateFlags>;
9321 
to_string(PipelineMultisampleStateCreateFlags)9322   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags  )
9323   {
9324     return "{}";
9325   }
9326 
9327   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT
9328   {};
9329 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)9330   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
9331   {
9332     return "(void)";
9333   }
9334 
9335   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT, VkPipelineRasterizationConservativeStateCreateFlagsEXT>;
9336 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)9337   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT  )
9338   {
9339     return "{}";
9340   }
9341 
9342   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT
9343   {};
9344 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)9345   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
9346   {
9347     return "(void)";
9348   }
9349 
9350   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT, VkPipelineRasterizationDepthClipStateCreateFlagsEXT>;
9351 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)9352   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT  )
9353   {
9354     return "{}";
9355   }
9356 
9357   enum class PipelineRasterizationStateCreateFlagBits
9358   {};
9359 
to_string(PipelineRasterizationStateCreateFlagBits)9360   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
9361   {
9362     return "(void)";
9363   }
9364 
9365   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits, VkPipelineRasterizationStateCreateFlags>;
9366 
to_string(PipelineRasterizationStateCreateFlags)9367   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags  )
9368   {
9369     return "{}";
9370   }
9371 
9372   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT
9373   {};
9374 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)9375   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
9376   {
9377     return "(void)";
9378   }
9379 
9380   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT, VkPipelineRasterizationStateStreamCreateFlagsEXT>;
9381 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)9382   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT  )
9383   {
9384     return "{}";
9385   }
9386 
9387   enum class PipelineShaderStageCreateFlagBits
9388   {
9389     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
9390     eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
9391   };
9392 
to_string(PipelineShaderStageCreateFlagBits value)9393   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
9394   {
9395     switch ( value )
9396     {
9397       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT";
9398       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT";
9399       default: return "invalid";
9400     }
9401   }
9402 
9403   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits, VkPipelineShaderStageCreateFlags>;
9404 
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9405   VULKAN_HPP_INLINE PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 )
9406   {
9407     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
9408   }
9409 
operator ~(PipelineShaderStageCreateFlagBits bits)9410   VULKAN_HPP_INLINE PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits )
9411   {
9412     return ~( PipelineShaderStageCreateFlags( bits ) );
9413   }
9414 
9415   template <> struct FlagTraits<PipelineShaderStageCreateFlagBits>
9416   {
9417     enum
9418     {
9419       allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT)
9420     };
9421   };
9422 
to_string(PipelineShaderStageCreateFlags value)9423   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value  )
9424   {
9425     if ( !value ) return "{}";
9426     std::string result;
9427 
9428     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | ";
9429     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | ";
9430     return "{ " + result.substr(0, result.size() - 3) + " }";
9431   }
9432 
9433   enum class PipelineStageFlagBits
9434   {
9435     eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
9436     eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
9437     eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
9438     eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
9439     eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
9440     eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
9441     eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
9442     eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
9443     eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
9444     eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
9445     eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
9446     eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
9447     eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
9448     eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
9449     eHost = VK_PIPELINE_STAGE_HOST_BIT,
9450     eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
9451     eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
9452     eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
9453     eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
9454     eCommandProcessNVX = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,
9455     eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
9456     eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
9457     eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
9458     eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
9459     eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
9460     eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
9461   };
9462 
to_string(PipelineStageFlagBits value)9463   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
9464   {
9465     switch ( value )
9466     {
9467       case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
9468       case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
9469       case PipelineStageFlagBits::eVertexInput : return "VertexInput";
9470       case PipelineStageFlagBits::eVertexShader : return "VertexShader";
9471       case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
9472       case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
9473       case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
9474       case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
9475       case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
9476       case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
9477       case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
9478       case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
9479       case PipelineStageFlagBits::eTransfer : return "Transfer";
9480       case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
9481       case PipelineStageFlagBits::eHost : return "Host";
9482       case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
9483       case PipelineStageFlagBits::eAllCommands : return "AllCommands";
9484       case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
9485       case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
9486       case PipelineStageFlagBits::eCommandProcessNVX : return "CommandProcessNVX";
9487       case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
9488       case PipelineStageFlagBits::eRayTracingShaderNV : return "RayTracingShaderNV";
9489       case PipelineStageFlagBits::eAccelerationStructureBuildNV : return "AccelerationStructureBuildNV";
9490       case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
9491       case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
9492       case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
9493       default: return "invalid";
9494     }
9495   }
9496 
9497   using PipelineStageFlags = Flags<PipelineStageFlagBits, VkPipelineStageFlags>;
9498 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)9499   VULKAN_HPP_INLINE PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 )
9500   {
9501     return PipelineStageFlags( bit0 ) | bit1;
9502   }
9503 
operator ~(PipelineStageFlagBits bits)9504   VULKAN_HPP_INLINE PipelineStageFlags operator~( PipelineStageFlagBits bits )
9505   {
9506     return ~( PipelineStageFlags( bits ) );
9507   }
9508 
9509   template <> struct FlagTraits<PipelineStageFlagBits>
9510   {
9511     enum
9512     {
9513       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::eCommandProcessNVX) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eRayTracingShaderNV) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT)
9514     };
9515   };
9516 
to_string(PipelineStageFlags value)9517   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value  )
9518   {
9519     if ( !value ) return "{}";
9520     std::string result;
9521 
9522     if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
9523     if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
9524     if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
9525     if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
9526     if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
9527     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
9528     if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
9529     if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
9530     if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
9531     if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
9532     if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
9533     if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
9534     if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
9535     if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
9536     if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
9537     if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
9538     if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
9539     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
9540     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
9541     if ( value & PipelineStageFlagBits::eCommandProcessNVX ) result += "CommandProcessNVX | ";
9542     if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
9543     if ( value & PipelineStageFlagBits::eRayTracingShaderNV ) result += "RayTracingShaderNV | ";
9544     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildNV ) result += "AccelerationStructureBuildNV | ";
9545     if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
9546     if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
9547     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
9548     return "{ " + result.substr(0, result.size() - 3) + " }";
9549   }
9550 
9551   enum class PipelineTessellationStateCreateFlagBits
9552   {};
9553 
to_string(PipelineTessellationStateCreateFlagBits)9554   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
9555   {
9556     return "(void)";
9557   }
9558 
9559   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits, VkPipelineTessellationStateCreateFlags>;
9560 
to_string(PipelineTessellationStateCreateFlags)9561   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags  )
9562   {
9563     return "{}";
9564   }
9565 
9566   enum class PipelineVertexInputStateCreateFlagBits
9567   {};
9568 
to_string(PipelineVertexInputStateCreateFlagBits)9569   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
9570   {
9571     return "(void)";
9572   }
9573 
9574   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits, VkPipelineVertexInputStateCreateFlags>;
9575 
to_string(PipelineVertexInputStateCreateFlags)9576   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags  )
9577   {
9578     return "{}";
9579   }
9580 
9581   enum class PipelineViewportStateCreateFlagBits
9582   {};
9583 
to_string(PipelineViewportStateCreateFlagBits)9584   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
9585   {
9586     return "(void)";
9587   }
9588 
9589   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits, VkPipelineViewportStateCreateFlags>;
9590 
to_string(PipelineViewportStateCreateFlags)9591   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags  )
9592   {
9593     return "{}";
9594   }
9595 
9596   enum class PipelineViewportSwizzleStateCreateFlagBitsNV
9597   {};
9598 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)9599   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
9600   {
9601     return "(void)";
9602   }
9603 
9604   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV, VkPipelineViewportSwizzleStateCreateFlagsNV>;
9605 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)9606   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV  )
9607   {
9608     return "{}";
9609   }
9610 
9611   enum class QueryControlFlagBits
9612   {
9613     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
9614   };
9615 
to_string(QueryControlFlagBits value)9616   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
9617   {
9618     switch ( value )
9619     {
9620       case QueryControlFlagBits::ePrecise : return "Precise";
9621       default: return "invalid";
9622     }
9623   }
9624 
9625   using QueryControlFlags = Flags<QueryControlFlagBits, VkQueryControlFlags>;
9626 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)9627   VULKAN_HPP_INLINE QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 )
9628   {
9629     return QueryControlFlags( bit0 ) | bit1;
9630   }
9631 
operator ~(QueryControlFlagBits bits)9632   VULKAN_HPP_INLINE QueryControlFlags operator~( QueryControlFlagBits bits )
9633   {
9634     return ~( QueryControlFlags( bits ) );
9635   }
9636 
9637   template <> struct FlagTraits<QueryControlFlagBits>
9638   {
9639     enum
9640     {
9641       allFlags = VkFlags(QueryControlFlagBits::ePrecise)
9642     };
9643   };
9644 
to_string(QueryControlFlags value)9645   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value  )
9646   {
9647     if ( !value ) return "{}";
9648     std::string result;
9649 
9650     if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
9651     return "{ " + result.substr(0, result.size() - 3) + " }";
9652   }
9653 
9654   enum class QueryPipelineStatisticFlagBits
9655   {
9656     eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
9657     eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
9658     eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
9659     eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
9660     eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
9661     eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
9662     eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
9663     eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
9664     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
9665     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
9666     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
9667   };
9668 
to_string(QueryPipelineStatisticFlagBits value)9669   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
9670   {
9671     switch ( value )
9672     {
9673       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
9674       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
9675       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
9676       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
9677       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
9678       case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
9679       case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
9680       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
9681       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
9682       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
9683       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
9684       default: return "invalid";
9685     }
9686   }
9687 
9688   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits, VkQueryPipelineStatisticFlags>;
9689 
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9690   VULKAN_HPP_INLINE QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 )
9691   {
9692     return QueryPipelineStatisticFlags( bit0 ) | bit1;
9693   }
9694 
operator ~(QueryPipelineStatisticFlagBits bits)9695   VULKAN_HPP_INLINE QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits )
9696   {
9697     return ~( QueryPipelineStatisticFlags( bits ) );
9698   }
9699 
9700   template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
9701   {
9702     enum
9703     {
9704       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)
9705     };
9706   };
9707 
to_string(QueryPipelineStatisticFlags value)9708   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value  )
9709   {
9710     if ( !value ) return "{}";
9711     std::string result;
9712 
9713     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
9714     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
9715     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
9716     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
9717     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
9718     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
9719     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
9720     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
9721     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
9722     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
9723     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
9724     return "{ " + result.substr(0, result.size() - 3) + " }";
9725   }
9726 
9727   enum class QueryPoolCreateFlagBits
9728   {};
9729 
to_string(QueryPoolCreateFlagBits)9730   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
9731   {
9732     return "(void)";
9733   }
9734 
9735   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits, VkQueryPoolCreateFlags>;
9736 
to_string(QueryPoolCreateFlags)9737   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags  )
9738   {
9739     return "{}";
9740   }
9741 
9742   enum class QueryResultFlagBits
9743   {
9744     e64 = VK_QUERY_RESULT_64_BIT,
9745     eWait = VK_QUERY_RESULT_WAIT_BIT,
9746     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
9747     ePartial = VK_QUERY_RESULT_PARTIAL_BIT
9748   };
9749 
to_string(QueryResultFlagBits value)9750   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
9751   {
9752     switch ( value )
9753     {
9754       case QueryResultFlagBits::e64 : return "64";
9755       case QueryResultFlagBits::eWait : return "Wait";
9756       case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
9757       case QueryResultFlagBits::ePartial : return "Partial";
9758       default: return "invalid";
9759     }
9760   }
9761 
9762   using QueryResultFlags = Flags<QueryResultFlagBits, VkQueryResultFlags>;
9763 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9764   VULKAN_HPP_INLINE QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 )
9765   {
9766     return QueryResultFlags( bit0 ) | bit1;
9767   }
9768 
operator ~(QueryResultFlagBits bits)9769   VULKAN_HPP_INLINE QueryResultFlags operator~( QueryResultFlagBits bits )
9770   {
9771     return ~( QueryResultFlags( bits ) );
9772   }
9773 
9774   template <> struct FlagTraits<QueryResultFlagBits>
9775   {
9776     enum
9777     {
9778       allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
9779     };
9780   };
9781 
to_string(QueryResultFlags value)9782   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value  )
9783   {
9784     if ( !value ) return "{}";
9785     std::string result;
9786 
9787     if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
9788     if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
9789     if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
9790     if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
9791     return "{ " + result.substr(0, result.size() - 3) + " }";
9792   }
9793 
9794   enum class QueueFlagBits
9795   {
9796     eGraphics = VK_QUEUE_GRAPHICS_BIT,
9797     eCompute = VK_QUEUE_COMPUTE_BIT,
9798     eTransfer = VK_QUEUE_TRANSFER_BIT,
9799     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
9800     eProtected = VK_QUEUE_PROTECTED_BIT
9801   };
9802 
to_string(QueueFlagBits value)9803   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
9804   {
9805     switch ( value )
9806     {
9807       case QueueFlagBits::eGraphics : return "Graphics";
9808       case QueueFlagBits::eCompute : return "Compute";
9809       case QueueFlagBits::eTransfer : return "Transfer";
9810       case QueueFlagBits::eSparseBinding : return "SparseBinding";
9811       case QueueFlagBits::eProtected : return "Protected";
9812       default: return "invalid";
9813     }
9814   }
9815 
9816   using QueueFlags = Flags<QueueFlagBits, VkQueueFlags>;
9817 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)9818   VULKAN_HPP_INLINE QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 )
9819   {
9820     return QueueFlags( bit0 ) | bit1;
9821   }
9822 
operator ~(QueueFlagBits bits)9823   VULKAN_HPP_INLINE QueueFlags operator~( QueueFlagBits bits )
9824   {
9825     return ~( QueueFlags( bits ) );
9826   }
9827 
9828   template <> struct FlagTraits<QueueFlagBits>
9829   {
9830     enum
9831     {
9832       allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
9833     };
9834   };
9835 
to_string(QueueFlags value)9836   VULKAN_HPP_INLINE std::string to_string( QueueFlags value  )
9837   {
9838     if ( !value ) return "{}";
9839     std::string result;
9840 
9841     if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
9842     if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
9843     if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
9844     if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
9845     if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
9846     return "{ " + result.substr(0, result.size() - 3) + " }";
9847   }
9848 
9849   enum class RenderPassCreateFlagBits
9850   {};
9851 
to_string(RenderPassCreateFlagBits)9852   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits )
9853   {
9854     return "(void)";
9855   }
9856 
9857   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits, VkRenderPassCreateFlags>;
9858 
to_string(RenderPassCreateFlags)9859   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags  )
9860   {
9861     return "{}";
9862   }
9863 
9864   enum class ResolveModeFlagBitsKHR
9865   {
9866     eNone = VK_RESOLVE_MODE_NONE_KHR,
9867     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,
9868     eAverage = VK_RESOLVE_MODE_AVERAGE_BIT_KHR,
9869     eMin = VK_RESOLVE_MODE_MIN_BIT_KHR,
9870     eMax = VK_RESOLVE_MODE_MAX_BIT_KHR
9871   };
9872 
to_string(ResolveModeFlagBitsKHR value)9873   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBitsKHR value )
9874   {
9875     switch ( value )
9876     {
9877       case ResolveModeFlagBitsKHR::eNone : return "None";
9878       case ResolveModeFlagBitsKHR::eSampleZero : return "SampleZero";
9879       case ResolveModeFlagBitsKHR::eAverage : return "Average";
9880       case ResolveModeFlagBitsKHR::eMin : return "Min";
9881       case ResolveModeFlagBitsKHR::eMax : return "Max";
9882       default: return "invalid";
9883     }
9884   }
9885 
9886   using ResolveModeFlagsKHR = Flags<ResolveModeFlagBitsKHR, VkResolveModeFlagsKHR>;
9887 
operator |(ResolveModeFlagBitsKHR bit0,ResolveModeFlagBitsKHR bit1)9888   VULKAN_HPP_INLINE ResolveModeFlagsKHR operator|( ResolveModeFlagBitsKHR bit0, ResolveModeFlagBitsKHR bit1 )
9889   {
9890     return ResolveModeFlagsKHR( bit0 ) | bit1;
9891   }
9892 
operator ~(ResolveModeFlagBitsKHR bits)9893   VULKAN_HPP_INLINE ResolveModeFlagsKHR operator~( ResolveModeFlagBitsKHR bits )
9894   {
9895     return ~( ResolveModeFlagsKHR( bits ) );
9896   }
9897 
9898   template <> struct FlagTraits<ResolveModeFlagBitsKHR>
9899   {
9900     enum
9901     {
9902       allFlags = VkFlags(ResolveModeFlagBitsKHR::eNone) | VkFlags(ResolveModeFlagBitsKHR::eSampleZero) | VkFlags(ResolveModeFlagBitsKHR::eAverage) | VkFlags(ResolveModeFlagBitsKHR::eMin) | VkFlags(ResolveModeFlagBitsKHR::eMax)
9903     };
9904   };
9905 
to_string(ResolveModeFlagsKHR value)9906   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagsKHR value  )
9907   {
9908     if ( !value ) return "{}";
9909     std::string result;
9910 
9911     if ( value & ResolveModeFlagBitsKHR::eSampleZero ) result += "SampleZero | ";
9912     if ( value & ResolveModeFlagBitsKHR::eAverage ) result += "Average | ";
9913     if ( value & ResolveModeFlagBitsKHR::eMin ) result += "Min | ";
9914     if ( value & ResolveModeFlagBitsKHR::eMax ) result += "Max | ";
9915     return "{ " + result.substr(0, result.size() - 3) + " }";
9916   }
9917 
9918   enum class SampleCountFlagBits
9919   {
9920     e1 = VK_SAMPLE_COUNT_1_BIT,
9921     e2 = VK_SAMPLE_COUNT_2_BIT,
9922     e4 = VK_SAMPLE_COUNT_4_BIT,
9923     e8 = VK_SAMPLE_COUNT_8_BIT,
9924     e16 = VK_SAMPLE_COUNT_16_BIT,
9925     e32 = VK_SAMPLE_COUNT_32_BIT,
9926     e64 = VK_SAMPLE_COUNT_64_BIT
9927   };
9928 
to_string(SampleCountFlagBits value)9929   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
9930   {
9931     switch ( value )
9932     {
9933       case SampleCountFlagBits::e1 : return "1";
9934       case SampleCountFlagBits::e2 : return "2";
9935       case SampleCountFlagBits::e4 : return "4";
9936       case SampleCountFlagBits::e8 : return "8";
9937       case SampleCountFlagBits::e16 : return "16";
9938       case SampleCountFlagBits::e32 : return "32";
9939       case SampleCountFlagBits::e64 : return "64";
9940       default: return "invalid";
9941     }
9942   }
9943 
9944   using SampleCountFlags = Flags<SampleCountFlagBits, VkSampleCountFlags>;
9945 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)9946   VULKAN_HPP_INLINE SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 )
9947   {
9948     return SampleCountFlags( bit0 ) | bit1;
9949   }
9950 
operator ~(SampleCountFlagBits bits)9951   VULKAN_HPP_INLINE SampleCountFlags operator~( SampleCountFlagBits bits )
9952   {
9953     return ~( SampleCountFlags( bits ) );
9954   }
9955 
9956   template <> struct FlagTraits<SampleCountFlagBits>
9957   {
9958     enum
9959     {
9960       allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
9961     };
9962   };
9963 
to_string(SampleCountFlags value)9964   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value  )
9965   {
9966     if ( !value ) return "{}";
9967     std::string result;
9968 
9969     if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
9970     if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
9971     if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
9972     if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
9973     if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
9974     if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
9975     if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
9976     return "{ " + result.substr(0, result.size() - 3) + " }";
9977   }
9978 
9979   enum class SamplerCreateFlagBits
9980   {
9981     eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
9982     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
9983   };
9984 
to_string(SamplerCreateFlagBits value)9985   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
9986   {
9987     switch ( value )
9988     {
9989       case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
9990       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
9991       default: return "invalid";
9992     }
9993   }
9994 
9995   using SamplerCreateFlags = Flags<SamplerCreateFlagBits, VkSamplerCreateFlags>;
9996 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)9997   VULKAN_HPP_INLINE SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 )
9998   {
9999     return SamplerCreateFlags( bit0 ) | bit1;
10000   }
10001 
operator ~(SamplerCreateFlagBits bits)10002   VULKAN_HPP_INLINE SamplerCreateFlags operator~( SamplerCreateFlagBits bits )
10003   {
10004     return ~( SamplerCreateFlags( bits ) );
10005   }
10006 
10007   template <> struct FlagTraits<SamplerCreateFlagBits>
10008   {
10009     enum
10010     {
10011       allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
10012     };
10013   };
10014 
to_string(SamplerCreateFlags value)10015   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value  )
10016   {
10017     if ( !value ) return "{}";
10018     std::string result;
10019 
10020     if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
10021     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
10022     return "{ " + result.substr(0, result.size() - 3) + " }";
10023   }
10024 
10025   enum class SemaphoreCreateFlagBits
10026   {};
10027 
to_string(SemaphoreCreateFlagBits)10028   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
10029   {
10030     return "(void)";
10031   }
10032 
10033   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits, VkSemaphoreCreateFlags>;
10034 
to_string(SemaphoreCreateFlags)10035   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags  )
10036   {
10037     return "{}";
10038   }
10039 
10040   enum class SemaphoreImportFlagBits
10041   {
10042     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
10043     eTemporaryKHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR
10044   };
10045 
to_string(SemaphoreImportFlagBits value)10046   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
10047   {
10048     switch ( value )
10049     {
10050       case SemaphoreImportFlagBits::eTemporary : return "Temporary";
10051       default: return "invalid";
10052     }
10053   }
10054 
10055   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits, VkSemaphoreImportFlags>;
10056 
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)10057   VULKAN_HPP_INLINE SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 )
10058   {
10059     return SemaphoreImportFlags( bit0 ) | bit1;
10060   }
10061 
operator ~(SemaphoreImportFlagBits bits)10062   VULKAN_HPP_INLINE SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits )
10063   {
10064     return ~( SemaphoreImportFlags( bits ) );
10065   }
10066 
10067   template <> struct FlagTraits<SemaphoreImportFlagBits>
10068   {
10069     enum
10070     {
10071       allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
10072     };
10073   };
10074 
10075   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
10076 
to_string(SemaphoreImportFlags value)10077   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value  )
10078   {
10079     if ( !value ) return "{}";
10080     std::string result;
10081 
10082     if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
10083     return "{ " + result.substr(0, result.size() - 3) + " }";
10084   }
10085 
10086   enum class ShaderCorePropertiesFlagBitsAMD
10087   {};
10088 
to_string(ShaderCorePropertiesFlagBitsAMD)10089   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
10090   {
10091     return "(void)";
10092   }
10093 
10094   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD, VkShaderCorePropertiesFlagsAMD>;
10095 
to_string(ShaderCorePropertiesFlagsAMD)10096   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD  )
10097   {
10098     return "{}";
10099   }
10100 
10101   enum class ShaderModuleCreateFlagBits
10102   {};
10103 
to_string(ShaderModuleCreateFlagBits)10104   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
10105   {
10106     return "(void)";
10107   }
10108 
10109   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits, VkShaderModuleCreateFlags>;
10110 
to_string(ShaderModuleCreateFlags)10111   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags  )
10112   {
10113     return "{}";
10114   }
10115 
10116   enum class ShaderStageFlagBits
10117   {
10118     eVertex = VK_SHADER_STAGE_VERTEX_BIT,
10119     eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
10120     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
10121     eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
10122     eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
10123     eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
10124     eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
10125     eAll = VK_SHADER_STAGE_ALL,
10126     eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV,
10127     eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
10128     eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
10129     eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
10130     eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
10131     eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
10132     eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
10133     eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV
10134   };
10135 
to_string(ShaderStageFlagBits value)10136   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
10137   {
10138     switch ( value )
10139     {
10140       case ShaderStageFlagBits::eVertex : return "Vertex";
10141       case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
10142       case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
10143       case ShaderStageFlagBits::eGeometry : return "Geometry";
10144       case ShaderStageFlagBits::eFragment : return "Fragment";
10145       case ShaderStageFlagBits::eCompute : return "Compute";
10146       case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
10147       case ShaderStageFlagBits::eAll : return "All";
10148       case ShaderStageFlagBits::eRaygenNV : return "RaygenNV";
10149       case ShaderStageFlagBits::eAnyHitNV : return "AnyHitNV";
10150       case ShaderStageFlagBits::eClosestHitNV : return "ClosestHitNV";
10151       case ShaderStageFlagBits::eMissNV : return "MissNV";
10152       case ShaderStageFlagBits::eIntersectionNV : return "IntersectionNV";
10153       case ShaderStageFlagBits::eCallableNV : return "CallableNV";
10154       case ShaderStageFlagBits::eTaskNV : return "TaskNV";
10155       case ShaderStageFlagBits::eMeshNV : return "MeshNV";
10156       default: return "invalid";
10157     }
10158   }
10159 
10160   using ShaderStageFlags = Flags<ShaderStageFlagBits, VkShaderStageFlags>;
10161 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10162   VULKAN_HPP_INLINE ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 )
10163   {
10164     return ShaderStageFlags( bit0 ) | bit1;
10165   }
10166 
operator ~(ShaderStageFlagBits bits)10167   VULKAN_HPP_INLINE ShaderStageFlags operator~( ShaderStageFlagBits bits )
10168   {
10169     return ~( ShaderStageFlags( bits ) );
10170   }
10171 
10172   template <> struct FlagTraits<ShaderStageFlagBits>
10173   {
10174     enum
10175     {
10176       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::eRaygenNV) | VkFlags(ShaderStageFlagBits::eAnyHitNV) | VkFlags(ShaderStageFlagBits::eClosestHitNV) | VkFlags(ShaderStageFlagBits::eMissNV) | VkFlags(ShaderStageFlagBits::eIntersectionNV) | VkFlags(ShaderStageFlagBits::eCallableNV) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV)
10177     };
10178   };
10179 
to_string(ShaderStageFlags value)10180   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value  )
10181   {
10182     if ( !value ) return "{}";
10183     std::string result;
10184 
10185     if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
10186     if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
10187     if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
10188     if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
10189     if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
10190     if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
10191     if ( value & ShaderStageFlagBits::eRaygenNV ) result += "RaygenNV | ";
10192     if ( value & ShaderStageFlagBits::eAnyHitNV ) result += "AnyHitNV | ";
10193     if ( value & ShaderStageFlagBits::eClosestHitNV ) result += "ClosestHitNV | ";
10194     if ( value & ShaderStageFlagBits::eMissNV ) result += "MissNV | ";
10195     if ( value & ShaderStageFlagBits::eIntersectionNV ) result += "IntersectionNV | ";
10196     if ( value & ShaderStageFlagBits::eCallableNV ) result += "CallableNV | ";
10197     if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
10198     if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
10199     return "{ " + result.substr(0, result.size() - 3) + " }";
10200   }
10201 
10202   enum class SparseImageFormatFlagBits
10203   {
10204     eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
10205     eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
10206     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
10207   };
10208 
to_string(SparseImageFormatFlagBits value)10209   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
10210   {
10211     switch ( value )
10212     {
10213       case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
10214       case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
10215       case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
10216       default: return "invalid";
10217     }
10218   }
10219 
10220   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits, VkSparseImageFormatFlags>;
10221 
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)10222   VULKAN_HPP_INLINE SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 )
10223   {
10224     return SparseImageFormatFlags( bit0 ) | bit1;
10225   }
10226 
operator ~(SparseImageFormatFlagBits bits)10227   VULKAN_HPP_INLINE SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits )
10228   {
10229     return ~( SparseImageFormatFlags( bits ) );
10230   }
10231 
10232   template <> struct FlagTraits<SparseImageFormatFlagBits>
10233   {
10234     enum
10235     {
10236       allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
10237     };
10238   };
10239 
to_string(SparseImageFormatFlags value)10240   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value  )
10241   {
10242     if ( !value ) return "{}";
10243     std::string result;
10244 
10245     if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
10246     if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
10247     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
10248     return "{ " + result.substr(0, result.size() - 3) + " }";
10249   }
10250 
10251   enum class SparseMemoryBindFlagBits
10252   {
10253     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
10254   };
10255 
to_string(SparseMemoryBindFlagBits value)10256   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
10257   {
10258     switch ( value )
10259     {
10260       case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
10261       default: return "invalid";
10262     }
10263   }
10264 
10265   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits, VkSparseMemoryBindFlags>;
10266 
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)10267   VULKAN_HPP_INLINE SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 )
10268   {
10269     return SparseMemoryBindFlags( bit0 ) | bit1;
10270   }
10271 
operator ~(SparseMemoryBindFlagBits bits)10272   VULKAN_HPP_INLINE SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits )
10273   {
10274     return ~( SparseMemoryBindFlags( bits ) );
10275   }
10276 
10277   template <> struct FlagTraits<SparseMemoryBindFlagBits>
10278   {
10279     enum
10280     {
10281       allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
10282     };
10283   };
10284 
to_string(SparseMemoryBindFlags value)10285   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value  )
10286   {
10287     if ( !value ) return "{}";
10288     std::string result;
10289 
10290     if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
10291     return "{ " + result.substr(0, result.size() - 3) + " }";
10292   }
10293 
10294   enum class StencilFaceFlagBits
10295   {
10296     eFront = VK_STENCIL_FACE_FRONT_BIT,
10297     eBack = VK_STENCIL_FACE_BACK_BIT,
10298     eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK,
10299     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
10300   };
10301 
to_string(StencilFaceFlagBits value)10302   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
10303   {
10304     switch ( value )
10305     {
10306       case StencilFaceFlagBits::eFront : return "Front";
10307       case StencilFaceFlagBits::eBack : return "Back";
10308       case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack";
10309       default: return "invalid";
10310     }
10311   }
10312 
10313   using StencilFaceFlags = Flags<StencilFaceFlagBits, VkStencilFaceFlags>;
10314 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10315   VULKAN_HPP_INLINE StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 )
10316   {
10317     return StencilFaceFlags( bit0 ) | bit1;
10318   }
10319 
operator ~(StencilFaceFlagBits bits)10320   VULKAN_HPP_INLINE StencilFaceFlags operator~( StencilFaceFlagBits bits )
10321   {
10322     return ~( StencilFaceFlags( bits ) );
10323   }
10324 
10325   template <> struct FlagTraits<StencilFaceFlagBits>
10326   {
10327     enum
10328     {
10329       allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack)
10330     };
10331   };
10332 
to_string(StencilFaceFlags value)10333   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value  )
10334   {
10335     if ( !value ) return "{}";
10336     std::string result;
10337 
10338     if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
10339     if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
10340     return "{ " + result.substr(0, result.size() - 3) + " }";
10341   }
10342 
10343 #ifdef VK_USE_PLATFORM_GGP
10344   enum class StreamDescriptorSurfaceCreateFlagBitsGGP
10345   {};
10346 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)10347   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
10348   {
10349     return "(void)";
10350   }
10351 
10352   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP, VkStreamDescriptorSurfaceCreateFlagsGGP>;
10353 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)10354   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP  )
10355   {
10356     return "{}";
10357   }
10358 #endif /*VK_USE_PLATFORM_GGP*/
10359 
10360   enum class SubgroupFeatureFlagBits
10361   {
10362     eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
10363     eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
10364     eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
10365     eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
10366     eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
10367     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
10368     eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
10369     eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
10370     ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
10371   };
10372 
to_string(SubgroupFeatureFlagBits value)10373   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
10374   {
10375     switch ( value )
10376     {
10377       case SubgroupFeatureFlagBits::eBasic : return "Basic";
10378       case SubgroupFeatureFlagBits::eVote : return "Vote";
10379       case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
10380       case SubgroupFeatureFlagBits::eBallot : return "Ballot";
10381       case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
10382       case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
10383       case SubgroupFeatureFlagBits::eClustered : return "Clustered";
10384       case SubgroupFeatureFlagBits::eQuad : return "Quad";
10385       case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
10386       default: return "invalid";
10387     }
10388   }
10389 
10390   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits, VkSubgroupFeatureFlags>;
10391 
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10392   VULKAN_HPP_INLINE SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 )
10393   {
10394     return SubgroupFeatureFlags( bit0 ) | bit1;
10395   }
10396 
operator ~(SubgroupFeatureFlagBits bits)10397   VULKAN_HPP_INLINE SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits )
10398   {
10399     return ~( SubgroupFeatureFlags( bits ) );
10400   }
10401 
10402   template <> struct FlagTraits<SubgroupFeatureFlagBits>
10403   {
10404     enum
10405     {
10406       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)
10407     };
10408   };
10409 
to_string(SubgroupFeatureFlags value)10410   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value  )
10411   {
10412     if ( !value ) return "{}";
10413     std::string result;
10414 
10415     if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
10416     if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
10417     if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
10418     if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
10419     if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
10420     if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
10421     if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
10422     if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
10423     if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
10424     return "{ " + result.substr(0, result.size() - 3) + " }";
10425   }
10426 
10427   enum class SubpassDescriptionFlagBits
10428   {
10429     ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
10430     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX
10431   };
10432 
to_string(SubpassDescriptionFlagBits value)10433   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
10434   {
10435     switch ( value )
10436     {
10437       case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
10438       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
10439       default: return "invalid";
10440     }
10441   }
10442 
10443   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits, VkSubpassDescriptionFlags>;
10444 
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10445   VULKAN_HPP_INLINE SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 )
10446   {
10447     return SubpassDescriptionFlags( bit0 ) | bit1;
10448   }
10449 
operator ~(SubpassDescriptionFlagBits bits)10450   VULKAN_HPP_INLINE SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits )
10451   {
10452     return ~( SubpassDescriptionFlags( bits ) );
10453   }
10454 
10455   template <> struct FlagTraits<SubpassDescriptionFlagBits>
10456   {
10457     enum
10458     {
10459       allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX)
10460     };
10461   };
10462 
to_string(SubpassDescriptionFlags value)10463   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value  )
10464   {
10465     if ( !value ) return "{}";
10466     std::string result;
10467 
10468     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
10469     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
10470     return "{ " + result.substr(0, result.size() - 3) + " }";
10471   }
10472 
10473   enum class SurfaceCounterFlagBitsEXT
10474   {
10475     eVblank = VK_SURFACE_COUNTER_VBLANK_EXT
10476   };
10477 
to_string(SurfaceCounterFlagBitsEXT value)10478   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
10479   {
10480     switch ( value )
10481     {
10482       case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
10483       default: return "invalid";
10484     }
10485   }
10486 
10487   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT, VkSurfaceCounterFlagsEXT>;
10488 
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)10489   VULKAN_HPP_INLINE SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 )
10490   {
10491     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
10492   }
10493 
operator ~(SurfaceCounterFlagBitsEXT bits)10494   VULKAN_HPP_INLINE SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits )
10495   {
10496     return ~( SurfaceCounterFlagsEXT( bits ) );
10497   }
10498 
10499   template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
10500   {
10501     enum
10502     {
10503       allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
10504     };
10505   };
10506 
to_string(SurfaceCounterFlagsEXT value)10507   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value  )
10508   {
10509     if ( !value ) return "{}";
10510     std::string result;
10511 
10512     if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
10513     return "{ " + result.substr(0, result.size() - 3) + " }";
10514   }
10515 
10516   enum class SurfaceTransformFlagBitsKHR
10517   {
10518     eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
10519     eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
10520     eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
10521     eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
10522     eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
10523     eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
10524     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
10525     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
10526     eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
10527   };
10528 
to_string(SurfaceTransformFlagBitsKHR value)10529   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
10530   {
10531     switch ( value )
10532     {
10533       case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
10534       case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
10535       case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
10536       case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
10537       case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
10538       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
10539       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
10540       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
10541       case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
10542       default: return "invalid";
10543     }
10544   }
10545 
10546   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR, VkSurfaceTransformFlagsKHR>;
10547 
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)10548   VULKAN_HPP_INLINE SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 )
10549   {
10550     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
10551   }
10552 
operator ~(SurfaceTransformFlagBitsKHR bits)10553   VULKAN_HPP_INLINE SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits )
10554   {
10555     return ~( SurfaceTransformFlagsKHR( bits ) );
10556   }
10557 
10558   template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
10559   {
10560     enum
10561     {
10562       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)
10563     };
10564   };
10565 
to_string(SurfaceTransformFlagsKHR value)10566   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value  )
10567   {
10568     if ( !value ) return "{}";
10569     std::string result;
10570 
10571     if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
10572     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
10573     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
10574     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
10575     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
10576     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
10577     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
10578     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
10579     if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
10580     return "{ " + result.substr(0, result.size() - 3) + " }";
10581   }
10582 
10583   enum class SwapchainCreateFlagBitsKHR
10584   {
10585     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
10586     eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
10587     eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
10588   };
10589 
to_string(SwapchainCreateFlagBitsKHR value)10590   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
10591   {
10592     switch ( value )
10593     {
10594       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
10595       case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
10596       case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
10597       default: return "invalid";
10598     }
10599   }
10600 
10601   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR, VkSwapchainCreateFlagsKHR>;
10602 
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)10603   VULKAN_HPP_INLINE SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 )
10604   {
10605     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
10606   }
10607 
operator ~(SwapchainCreateFlagBitsKHR bits)10608   VULKAN_HPP_INLINE SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits )
10609   {
10610     return ~( SwapchainCreateFlagsKHR( bits ) );
10611   }
10612 
10613   template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
10614   {
10615     enum
10616     {
10617       allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
10618     };
10619   };
10620 
to_string(SwapchainCreateFlagsKHR value)10621   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value  )
10622   {
10623     if ( !value ) return "{}";
10624     std::string result;
10625 
10626     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
10627     if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
10628     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
10629     return "{ " + result.substr(0, result.size() - 3) + " }";
10630   }
10631 
10632   enum class ValidationCacheCreateFlagBitsEXT
10633   {};
10634 
to_string(ValidationCacheCreateFlagBitsEXT)10635   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
10636   {
10637     return "(void)";
10638   }
10639 
10640   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT, VkValidationCacheCreateFlagsEXT>;
10641 
to_string(ValidationCacheCreateFlagsEXT)10642   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT  )
10643   {
10644     return "{}";
10645   }
10646 
10647 #ifdef VK_USE_PLATFORM_VI_NN
10648   enum class ViSurfaceCreateFlagBitsNN
10649   {};
10650 
to_string(ViSurfaceCreateFlagBitsNN)10651   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
10652   {
10653     return "(void)";
10654   }
10655 
10656   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN, VkViSurfaceCreateFlagsNN>;
10657 
to_string(ViSurfaceCreateFlagsNN)10658   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN  )
10659   {
10660     return "{}";
10661   }
10662 #endif /*VK_USE_PLATFORM_VI_NN*/
10663 
10664 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
10665   enum class WaylandSurfaceCreateFlagBitsKHR
10666   {};
10667 
to_string(WaylandSurfaceCreateFlagBitsKHR)10668   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
10669   {
10670     return "(void)";
10671   }
10672 
10673   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR, VkWaylandSurfaceCreateFlagsKHR>;
10674 
to_string(WaylandSurfaceCreateFlagsKHR)10675   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR  )
10676   {
10677     return "{}";
10678   }
10679 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
10680 
10681 #ifdef VK_USE_PLATFORM_WIN32_KHR
10682   enum class Win32SurfaceCreateFlagBitsKHR
10683   {};
10684 
to_string(Win32SurfaceCreateFlagBitsKHR)10685   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
10686   {
10687     return "(void)";
10688   }
10689 
10690   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR, VkWin32SurfaceCreateFlagsKHR>;
10691 
to_string(Win32SurfaceCreateFlagsKHR)10692   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR  )
10693   {
10694     return "{}";
10695   }
10696 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
10697 
10698 #ifdef VK_USE_PLATFORM_XCB_KHR
10699   enum class XcbSurfaceCreateFlagBitsKHR
10700   {};
10701 
to_string(XcbSurfaceCreateFlagBitsKHR)10702   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
10703   {
10704     return "(void)";
10705   }
10706 
10707   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR, VkXcbSurfaceCreateFlagsKHR>;
10708 
to_string(XcbSurfaceCreateFlagsKHR)10709   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR  )
10710   {
10711     return "{}";
10712   }
10713 #endif /*VK_USE_PLATFORM_XCB_KHR*/
10714 
10715 #ifdef VK_USE_PLATFORM_XLIB_KHR
10716   enum class XlibSurfaceCreateFlagBitsKHR
10717   {};
10718 
to_string(XlibSurfaceCreateFlagBitsKHR)10719   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
10720   {
10721     return "(void)";
10722   }
10723 
10724   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR, VkXlibSurfaceCreateFlagsKHR>;
10725 
to_string(XlibSurfaceCreateFlagsKHR)10726   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR  )
10727   {
10728     return "{}";
10729   }
10730 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
10731 } // namespace VULKAN_HPP_NAMESPACE
10732 
10733 namespace std
10734 {
10735   template <>
10736   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
10737   {};
10738 }
10739 
10740 namespace VULKAN_HPP_NAMESPACE
10741 {
10742 #ifndef VULKAN_HPP_NO_EXCEPTIONS
10743 #if defined(_MSC_VER) && (_MSC_VER == 1800)
10744 # define noexcept _NOEXCEPT
10745 #endif
10746 
10747   class ErrorCategoryImpl : public std::error_category
10748   {
10749     public:
name() const10750     virtual const char* name() const noexcept override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
message(int ev) const10751     virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
10752   };
10753 
10754   class Error
10755   {
10756     public:
10757     virtual ~Error() = default;
10758 
10759     virtual const char* what() const noexcept = 0;
10760   };
10761 
10762   class LogicError : public Error, public std::logic_error
10763   {
10764     public:
LogicError(const std::string & what)10765     explicit LogicError( const std::string& what )
10766       : Error(), std::logic_error(what) {}
LogicError(char const * what)10767     explicit LogicError( char const * what )
10768       : Error(), std::logic_error(what) {}
10769     virtual ~LogicError() = default;
10770 
what() const10771     virtual const char* what() const noexcept { return std::logic_error::what(); }
10772   };
10773 
10774   class SystemError : public Error, public std::system_error
10775   {
10776     public:
SystemError(std::error_code ec)10777     SystemError( std::error_code ec )
10778       : Error(), std::system_error(ec) {}
SystemError(std::error_code ec,std::string const & what)10779     SystemError( std::error_code ec, std::string const& what )
10780       : Error(), std::system_error(ec, what) {}
SystemError(std::error_code ec,char const * what)10781     SystemError( std::error_code ec, char const * what )
10782       : Error(), std::system_error(ec, what) {}
SystemError(int ev,std::error_category const & ecat)10783     SystemError( int ev, std::error_category const& ecat )
10784       : Error(), std::system_error(ev, ecat) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)10785     SystemError( int ev, std::error_category const& ecat, std::string const& what)
10786       : Error(), std::system_error(ev, ecat, what) {}
SystemError(int ev,std::error_category const & ecat,char const * what)10787     SystemError( int ev, std::error_category const& ecat, char const * what)
10788       : Error(), std::system_error(ev, ecat, what) {}
10789     virtual ~SystemError() = default;
10790 
what() const10791     virtual const char* what() const noexcept { return std::system_error::what(); }
10792   };
10793 
10794 #if defined(_MSC_VER) && (_MSC_VER == 1800)
10795 # undef noexcept
10796 #endif
10797 
errorCategory()10798   VULKAN_HPP_INLINE const std::error_category& errorCategory()
10799   {
10800     static ErrorCategoryImpl instance;
10801     return instance;
10802   }
10803 
make_error_code(Result e)10804   VULKAN_HPP_INLINE std::error_code make_error_code(Result e)
10805   {
10806     return std::error_code(static_cast<int>(e), errorCategory());
10807   }
10808 
make_error_condition(Result e)10809   VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e)
10810   {
10811     return std::error_condition(static_cast<int>(e), errorCategory());
10812   }
10813 
10814   class OutOfHostMemoryError : public SystemError
10815   {
10816   public:
OutOfHostMemoryError(std::string const & message)10817     OutOfHostMemoryError( std::string const& message )
10818       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)10819     OutOfHostMemoryError( char const * message )
10820       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
10821   };
10822 
10823   class OutOfDeviceMemoryError : public SystemError
10824   {
10825   public:
OutOfDeviceMemoryError(std::string const & message)10826     OutOfDeviceMemoryError( std::string const& message )
10827       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)10828     OutOfDeviceMemoryError( char const * message )
10829       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
10830   };
10831 
10832   class InitializationFailedError : public SystemError
10833   {
10834   public:
InitializationFailedError(std::string const & message)10835     InitializationFailedError( std::string const& message )
10836       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)10837     InitializationFailedError( char const * message )
10838       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
10839   };
10840 
10841   class DeviceLostError : public SystemError
10842   {
10843   public:
DeviceLostError(std::string const & message)10844     DeviceLostError( std::string const& message )
10845       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)10846     DeviceLostError( char const * message )
10847       : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
10848   };
10849 
10850   class MemoryMapFailedError : public SystemError
10851   {
10852   public:
MemoryMapFailedError(std::string const & message)10853     MemoryMapFailedError( std::string const& message )
10854       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)10855     MemoryMapFailedError( char const * message )
10856       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
10857   };
10858 
10859   class LayerNotPresentError : public SystemError
10860   {
10861   public:
LayerNotPresentError(std::string const & message)10862     LayerNotPresentError( std::string const& message )
10863       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)10864     LayerNotPresentError( char const * message )
10865       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
10866   };
10867 
10868   class ExtensionNotPresentError : public SystemError
10869   {
10870   public:
ExtensionNotPresentError(std::string const & message)10871     ExtensionNotPresentError( std::string const& message )
10872       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)10873     ExtensionNotPresentError( char const * message )
10874       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
10875   };
10876 
10877   class FeatureNotPresentError : public SystemError
10878   {
10879   public:
FeatureNotPresentError(std::string const & message)10880     FeatureNotPresentError( std::string const& message )
10881       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)10882     FeatureNotPresentError( char const * message )
10883       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
10884   };
10885 
10886   class IncompatibleDriverError : public SystemError
10887   {
10888   public:
IncompatibleDriverError(std::string const & message)10889     IncompatibleDriverError( std::string const& message )
10890       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)10891     IncompatibleDriverError( char const * message )
10892       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
10893   };
10894 
10895   class TooManyObjectsError : public SystemError
10896   {
10897   public:
TooManyObjectsError(std::string const & message)10898     TooManyObjectsError( std::string const& message )
10899       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)10900     TooManyObjectsError( char const * message )
10901       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
10902   };
10903 
10904   class FormatNotSupportedError : public SystemError
10905   {
10906   public:
FormatNotSupportedError(std::string const & message)10907     FormatNotSupportedError( std::string const& message )
10908       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)10909     FormatNotSupportedError( char const * message )
10910       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
10911   };
10912 
10913   class FragmentedPoolError : public SystemError
10914   {
10915   public:
FragmentedPoolError(std::string const & message)10916     FragmentedPoolError( std::string const& message )
10917       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)10918     FragmentedPoolError( char const * message )
10919       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
10920   };
10921 
10922   class OutOfPoolMemoryError : public SystemError
10923   {
10924   public:
OutOfPoolMemoryError(std::string const & message)10925     OutOfPoolMemoryError( std::string const& message )
10926       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)10927     OutOfPoolMemoryError( char const * message )
10928       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
10929   };
10930 
10931   class InvalidExternalHandleError : public SystemError
10932   {
10933   public:
InvalidExternalHandleError(std::string const & message)10934     InvalidExternalHandleError( std::string const& message )
10935       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)10936     InvalidExternalHandleError( char const * message )
10937       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
10938   };
10939 
10940   class SurfaceLostKHRError : public SystemError
10941   {
10942   public:
SurfaceLostKHRError(std::string const & message)10943     SurfaceLostKHRError( std::string const& message )
10944       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)10945     SurfaceLostKHRError( char const * message )
10946       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
10947   };
10948 
10949   class NativeWindowInUseKHRError : public SystemError
10950   {
10951   public:
NativeWindowInUseKHRError(std::string const & message)10952     NativeWindowInUseKHRError( std::string const& message )
10953       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)10954     NativeWindowInUseKHRError( char const * message )
10955       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
10956   };
10957 
10958   class OutOfDateKHRError : public SystemError
10959   {
10960   public:
OutOfDateKHRError(std::string const & message)10961     OutOfDateKHRError( std::string const& message )
10962       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)10963     OutOfDateKHRError( char const * message )
10964       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
10965   };
10966 
10967   class IncompatibleDisplayKHRError : public SystemError
10968   {
10969   public:
IncompatibleDisplayKHRError(std::string const & message)10970     IncompatibleDisplayKHRError( std::string const& message )
10971       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)10972     IncompatibleDisplayKHRError( char const * message )
10973       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
10974   };
10975 
10976   class ValidationFailedEXTError : public SystemError
10977   {
10978   public:
ValidationFailedEXTError(std::string const & message)10979     ValidationFailedEXTError( std::string const& message )
10980       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)10981     ValidationFailedEXTError( char const * message )
10982       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
10983   };
10984 
10985   class InvalidShaderNVError : public SystemError
10986   {
10987   public:
InvalidShaderNVError(std::string const & message)10988     InvalidShaderNVError( std::string const& message )
10989       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)10990     InvalidShaderNVError( char const * message )
10991       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
10992   };
10993 
10994   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
10995   {
10996   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)10997     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
10998       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)10999     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
11000       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
11001   };
11002 
11003   class FragmentationEXTError : public SystemError
11004   {
11005   public:
FragmentationEXTError(std::string const & message)11006     FragmentationEXTError( std::string const& message )
11007       : SystemError( make_error_code( Result::eErrorFragmentationEXT ), message ) {}
FragmentationEXTError(char const * message)11008     FragmentationEXTError( char const * message )
11009       : SystemError( make_error_code( Result::eErrorFragmentationEXT ), message ) {}
11010   };
11011 
11012   class NotPermittedEXTError : public SystemError
11013   {
11014   public:
NotPermittedEXTError(std::string const & message)11015     NotPermittedEXTError( std::string const& message )
11016       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
NotPermittedEXTError(char const * message)11017     NotPermittedEXTError( char const * message )
11018       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
11019   };
11020 
11021   class InvalidDeviceAddressEXTError : public SystemError
11022   {
11023   public:
InvalidDeviceAddressEXTError(std::string const & message)11024     InvalidDeviceAddressEXTError( std::string const& message )
11025       : SystemError( make_error_code( Result::eErrorInvalidDeviceAddressEXT ), message ) {}
InvalidDeviceAddressEXTError(char const * message)11026     InvalidDeviceAddressEXTError( char const * message )
11027       : SystemError( make_error_code( Result::eErrorInvalidDeviceAddressEXT ), message ) {}
11028   };
11029 
11030   class FullScreenExclusiveModeLostEXTError : public SystemError
11031   {
11032   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)11033     FullScreenExclusiveModeLostEXTError( std::string const& message )
11034       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
FullScreenExclusiveModeLostEXTError(char const * message)11035     FullScreenExclusiveModeLostEXTError( char const * message )
11036       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
11037   };
11038 
throwResultException(Result result,char const * message)11039   VULKAN_HPP_INLINE void throwResultException( Result result, char const * message )
11040   {
11041     switch ( result )
11042     {
11043       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
11044       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
11045       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
11046       case Result::eErrorDeviceLost: throw DeviceLostError( message );
11047       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
11048       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
11049       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
11050       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
11051       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
11052       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
11053       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
11054       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
11055       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
11056       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
11057       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
11058       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
11059       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
11060       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
11061       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
11062       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
11063       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
11064       case Result::eErrorFragmentationEXT: throw FragmentationEXTError( message );
11065       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
11066       case Result::eErrorInvalidDeviceAddressEXT: throw InvalidDeviceAddressEXTError( message );
11067       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
11068       default: throw SystemError( make_error_code( result ) );
11069     }
11070   }
11071 #endif
11072 
ignore(T const &)11073   template <typename T> void ignore(T const&) {}
11074 
11075   template <typename T>
11076   struct ResultValue
11077   {
ResultValueVULKAN_HPP_NAMESPACE::ResultValue11078     ResultValue( Result r, T & v )
11079       : result( r )
11080       , value( v )
11081     {}
11082 
ResultValueVULKAN_HPP_NAMESPACE::ResultValue11083     ResultValue( Result r, T && v )
11084       : result( r )
11085       , value( std::move( v ) )
11086     {}
11087 
11088     Result  result;
11089     T       value;
11090 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue11091     operator std::tuple<Result&, T&>() { return std::tuple<Result&, T&>(result, value); }
11092   };
11093 
11094   template <typename T>
11095   struct ResultValueType
11096   {
11097 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11098     typedef ResultValue<T>  type;
11099 #else
11100     typedef T               type;
11101 #endif
11102   };
11103 
11104   template <>
11105   struct ResultValueType<void>
11106   {
11107 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11108     typedef Result type;
11109 #else
11110     typedef void   type;
11111 #endif
11112   };
11113 
createResultValue(Result result,char const * message)11114   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
11115   {
11116 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11117     ignore(message);
11118     VULKAN_HPP_ASSERT( result == Result::eSuccess );
11119     return result;
11120 #else
11121     if ( result != Result::eSuccess )
11122     {
11123       throwResultException( result, message );
11124     }
11125 #endif
11126   }
11127 
11128   template <typename T>
createResultValue(Result result,T & data,char const * message)11129   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
11130   {
11131 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11132     ignore(message);
11133     VULKAN_HPP_ASSERT( result == Result::eSuccess );
11134     return ResultValue<T>( result, std::move( data ) );
11135 #else
11136     if ( result != Result::eSuccess )
11137     {
11138       throwResultException( result, message );
11139     }
11140     return std::move( data );
11141 #endif
11142   }
11143 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)11144   VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
11145   {
11146 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11147     ignore(message);
11148     VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
11149 #else
11150     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
11151     {
11152       throwResultException( result, message );
11153     }
11154 #endif
11155     return result;
11156   }
11157 
11158   template <typename T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)11159   VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
11160   {
11161 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11162     ignore(message);
11163     VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
11164 #else
11165     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
11166     {
11167       throwResultException( result, message );
11168     }
11169 #endif
11170     return ResultValue<T>( result, data );
11171   }
11172 
11173 #ifndef VULKAN_HPP_NO_SMART_HANDLE
11174   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)11175   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
11176   {
11177 #ifdef VULKAN_HPP_NO_EXCEPTIONS
11178     ignore(message);
11179     VULKAN_HPP_ASSERT( result == Result::eSuccess );
11180     return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
11181 #else
11182     if ( result != Result::eSuccess )
11183     {
11184       throwResultException( result, message );
11185     }
11186     return UniqueHandle<T,D>(data, deleter);
11187 #endif
11188   }
11189 #endif
11190 
11191   struct AccelerationStructureCreateInfoNV;
11192   struct AccelerationStructureInfoNV;
11193   struct AccelerationStructureMemoryRequirementsInfoNV;
11194   struct AcquireNextImageInfoKHR;
11195   struct AllocationCallbacks;
11196 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11197   struct AndroidHardwareBufferFormatPropertiesANDROID;
11198 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11199 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11200   struct AndroidHardwareBufferPropertiesANDROID;
11201 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11202 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11203   struct AndroidHardwareBufferUsageANDROID;
11204 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11205 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11206   struct AndroidSurfaceCreateInfoKHR;
11207 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11208   struct ApplicationInfo;
11209   struct AttachmentDescription;
11210   struct AttachmentDescription2KHR;
11211   struct AttachmentReference;
11212   struct AttachmentReference2KHR;
11213   struct AttachmentSampleLocationsEXT;
11214   struct BaseInStructure;
11215   struct BaseOutStructure;
11216   struct BindAccelerationStructureMemoryInfoNV;
11217   struct BindBufferMemoryDeviceGroupInfo;
11218   using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
11219   struct BindBufferMemoryInfo;
11220   using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
11221   struct BindImageMemoryDeviceGroupInfo;
11222   using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
11223   struct BindImageMemoryInfo;
11224   using BindImageMemoryInfoKHR = BindImageMemoryInfo;
11225   struct BindImageMemorySwapchainInfoKHR;
11226   struct BindImagePlaneMemoryInfo;
11227   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
11228   struct BindSparseInfo;
11229   struct BufferCopy;
11230   struct BufferCreateInfo;
11231   struct BufferDeviceAddressCreateInfoEXT;
11232   struct BufferDeviceAddressInfoEXT;
11233   struct BufferImageCopy;
11234   struct BufferMemoryBarrier;
11235   struct BufferMemoryRequirementsInfo2;
11236   using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
11237   struct BufferViewCreateInfo;
11238   struct CalibratedTimestampInfoEXT;
11239   struct CheckpointDataNV;
11240   struct ClearAttachment;
11241   union ClearColorValue;
11242   struct ClearDepthStencilValue;
11243   struct ClearRect;
11244   union ClearValue;
11245   struct CmdProcessCommandsInfoNVX;
11246   struct CmdReserveSpaceForCommandsInfoNVX;
11247   struct CoarseSampleLocationNV;
11248   struct CoarseSampleOrderCustomNV;
11249   struct CommandBufferAllocateInfo;
11250   struct CommandBufferBeginInfo;
11251   struct CommandBufferInheritanceConditionalRenderingInfoEXT;
11252   struct CommandBufferInheritanceInfo;
11253   struct CommandPoolCreateInfo;
11254   struct ComponentMapping;
11255   struct ComputePipelineCreateInfo;
11256   struct ConditionalRenderingBeginInfoEXT;
11257   struct ConformanceVersionKHR;
11258   struct CooperativeMatrixPropertiesNV;
11259   struct CopyDescriptorSet;
11260 #ifdef VK_USE_PLATFORM_WIN32_KHR
11261   struct D3D12FenceSubmitInfoKHR;
11262 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11263   struct DebugMarkerMarkerInfoEXT;
11264   struct DebugMarkerObjectNameInfoEXT;
11265   struct DebugMarkerObjectTagInfoEXT;
11266   struct DebugReportCallbackCreateInfoEXT;
11267   struct DebugUtilsLabelEXT;
11268   struct DebugUtilsMessengerCallbackDataEXT;
11269   struct DebugUtilsMessengerCreateInfoEXT;
11270   struct DebugUtilsObjectNameInfoEXT;
11271   struct DebugUtilsObjectTagInfoEXT;
11272   struct DedicatedAllocationBufferCreateInfoNV;
11273   struct DedicatedAllocationImageCreateInfoNV;
11274   struct DedicatedAllocationMemoryAllocateInfoNV;
11275   struct DescriptorBufferInfo;
11276   struct DescriptorImageInfo;
11277   struct DescriptorPoolCreateInfo;
11278   struct DescriptorPoolInlineUniformBlockCreateInfoEXT;
11279   struct DescriptorPoolSize;
11280   struct DescriptorSetAllocateInfo;
11281   struct DescriptorSetLayoutBinding;
11282   struct DescriptorSetLayoutBindingFlagsCreateInfoEXT;
11283   struct DescriptorSetLayoutCreateInfo;
11284   struct DescriptorSetLayoutSupport;
11285   using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
11286   struct DescriptorSetVariableDescriptorCountAllocateInfoEXT;
11287   struct DescriptorSetVariableDescriptorCountLayoutSupportEXT;
11288   struct DescriptorUpdateTemplateCreateInfo;
11289   using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
11290   struct DescriptorUpdateTemplateEntry;
11291   using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
11292   struct DeviceCreateInfo;
11293   struct DeviceEventInfoEXT;
11294   struct DeviceGeneratedCommandsFeaturesNVX;
11295   struct DeviceGeneratedCommandsLimitsNVX;
11296   struct DeviceGroupBindSparseInfo;
11297   using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
11298   struct DeviceGroupCommandBufferBeginInfo;
11299   using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
11300   struct DeviceGroupDeviceCreateInfo;
11301   using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
11302   struct DeviceGroupPresentCapabilitiesKHR;
11303   struct DeviceGroupPresentInfoKHR;
11304   struct DeviceGroupRenderPassBeginInfo;
11305   using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
11306   struct DeviceGroupSubmitInfo;
11307   using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
11308   struct DeviceGroupSwapchainCreateInfoKHR;
11309   struct DeviceMemoryOverallocationCreateInfoAMD;
11310   struct DeviceQueueCreateInfo;
11311   struct DeviceQueueGlobalPriorityCreateInfoEXT;
11312   struct DeviceQueueInfo2;
11313   struct DispatchIndirectCommand;
11314   struct DisplayEventInfoEXT;
11315   struct DisplayModeCreateInfoKHR;
11316   struct DisplayModeParametersKHR;
11317   struct DisplayModeProperties2KHR;
11318   struct DisplayModePropertiesKHR;
11319   struct DisplayNativeHdrSurfaceCapabilitiesAMD;
11320   struct DisplayPlaneCapabilities2KHR;
11321   struct DisplayPlaneCapabilitiesKHR;
11322   struct DisplayPlaneInfo2KHR;
11323   struct DisplayPlaneProperties2KHR;
11324   struct DisplayPlanePropertiesKHR;
11325   struct DisplayPowerInfoEXT;
11326   struct DisplayPresentInfoKHR;
11327   struct DisplayProperties2KHR;
11328   struct DisplayPropertiesKHR;
11329   struct DisplaySurfaceCreateInfoKHR;
11330   struct DrawIndexedIndirectCommand;
11331   struct DrawIndirectCommand;
11332   struct DrawMeshTasksIndirectCommandNV;
11333   struct DrmFormatModifierPropertiesEXT;
11334   struct DrmFormatModifierPropertiesListEXT;
11335   struct EventCreateInfo;
11336   struct ExportFenceCreateInfo;
11337   using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
11338 #ifdef VK_USE_PLATFORM_WIN32_KHR
11339   struct ExportFenceWin32HandleInfoKHR;
11340 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11341   struct ExportMemoryAllocateInfo;
11342   using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
11343   struct ExportMemoryAllocateInfoNV;
11344 #ifdef VK_USE_PLATFORM_WIN32_KHR
11345   struct ExportMemoryWin32HandleInfoKHR;
11346 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11347 #ifdef VK_USE_PLATFORM_WIN32_KHR
11348   struct ExportMemoryWin32HandleInfoNV;
11349 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11350   struct ExportSemaphoreCreateInfo;
11351   using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
11352 #ifdef VK_USE_PLATFORM_WIN32_KHR
11353   struct ExportSemaphoreWin32HandleInfoKHR;
11354 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11355   struct ExtensionProperties;
11356   struct Extent2D;
11357   struct Extent3D;
11358   struct ExternalBufferProperties;
11359   using ExternalBufferPropertiesKHR = ExternalBufferProperties;
11360   struct ExternalFenceProperties;
11361   using ExternalFencePropertiesKHR = ExternalFenceProperties;
11362 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11363   struct ExternalFormatANDROID;
11364 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11365   struct ExternalImageFormatProperties;
11366   using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
11367   struct ExternalImageFormatPropertiesNV;
11368   struct ExternalMemoryBufferCreateInfo;
11369   using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
11370   struct ExternalMemoryImageCreateInfo;
11371   using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
11372   struct ExternalMemoryImageCreateInfoNV;
11373   struct ExternalMemoryProperties;
11374   using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
11375   struct ExternalSemaphoreProperties;
11376   using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
11377   struct FenceCreateInfo;
11378   struct FenceGetFdInfoKHR;
11379 #ifdef VK_USE_PLATFORM_WIN32_KHR
11380   struct FenceGetWin32HandleInfoKHR;
11381 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11382   struct FilterCubicImageViewImageFormatPropertiesEXT;
11383   struct FormatProperties;
11384   struct FormatProperties2;
11385   using FormatProperties2KHR = FormatProperties2;
11386   struct FramebufferAttachmentImageInfoKHR;
11387   struct FramebufferAttachmentsCreateInfoKHR;
11388   struct FramebufferCreateInfo;
11389   struct FramebufferMixedSamplesCombinationNV;
11390   struct GeometryAABBNV;
11391   struct GeometryDataNV;
11392   struct GeometryNV;
11393   struct GeometryTrianglesNV;
11394   struct GraphicsPipelineCreateInfo;
11395   struct HdrMetadataEXT;
11396   struct HeadlessSurfaceCreateInfoEXT;
11397 #ifdef VK_USE_PLATFORM_IOS_MVK
11398   struct IOSSurfaceCreateInfoMVK;
11399 #endif /*VK_USE_PLATFORM_IOS_MVK*/
11400   struct ImageBlit;
11401   struct ImageCopy;
11402   struct ImageCreateInfo;
11403   struct ImageDrmFormatModifierExplicitCreateInfoEXT;
11404   struct ImageDrmFormatModifierListCreateInfoEXT;
11405   struct ImageDrmFormatModifierPropertiesEXT;
11406   struct ImageFormatListCreateInfoKHR;
11407   struct ImageFormatProperties;
11408   struct ImageFormatProperties2;
11409   using ImageFormatProperties2KHR = ImageFormatProperties2;
11410   struct ImageMemoryBarrier;
11411   struct ImageMemoryRequirementsInfo2;
11412   using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
11413 #ifdef VK_USE_PLATFORM_FUCHSIA
11414   struct ImagePipeSurfaceCreateInfoFUCHSIA;
11415 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11416   struct ImagePlaneMemoryRequirementsInfo;
11417   using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
11418   struct ImageResolve;
11419   struct ImageSparseMemoryRequirementsInfo2;
11420   using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
11421   struct ImageStencilUsageCreateInfoEXT;
11422   struct ImageSubresource;
11423   struct ImageSubresourceLayers;
11424   struct ImageSubresourceRange;
11425   struct ImageSwapchainCreateInfoKHR;
11426   struct ImageViewASTCDecodeModeEXT;
11427   struct ImageViewCreateInfo;
11428   struct ImageViewHandleInfoNVX;
11429   struct ImageViewUsageCreateInfo;
11430   using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
11431 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11432   struct ImportAndroidHardwareBufferInfoANDROID;
11433 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11434   struct ImportFenceFdInfoKHR;
11435 #ifdef VK_USE_PLATFORM_WIN32_KHR
11436   struct ImportFenceWin32HandleInfoKHR;
11437 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11438   struct ImportMemoryFdInfoKHR;
11439   struct ImportMemoryHostPointerInfoEXT;
11440 #ifdef VK_USE_PLATFORM_WIN32_KHR
11441   struct ImportMemoryWin32HandleInfoKHR;
11442 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11443 #ifdef VK_USE_PLATFORM_WIN32_KHR
11444   struct ImportMemoryWin32HandleInfoNV;
11445 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11446   struct ImportSemaphoreFdInfoKHR;
11447 #ifdef VK_USE_PLATFORM_WIN32_KHR
11448   struct ImportSemaphoreWin32HandleInfoKHR;
11449 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11450   struct IndirectCommandsLayoutCreateInfoNVX;
11451   struct IndirectCommandsLayoutTokenNVX;
11452   struct IndirectCommandsTokenNVX;
11453   struct InitializePerformanceApiInfoINTEL;
11454   struct InputAttachmentAspectReference;
11455   using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
11456   struct InstanceCreateInfo;
11457   struct LayerProperties;
11458 #ifdef VK_USE_PLATFORM_MACOS_MVK
11459   struct MacOSSurfaceCreateInfoMVK;
11460 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11461   struct MappedMemoryRange;
11462   struct MemoryAllocateFlagsInfo;
11463   using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
11464   struct MemoryAllocateInfo;
11465   struct MemoryBarrier;
11466   struct MemoryDedicatedAllocateInfo;
11467   using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
11468   struct MemoryDedicatedRequirements;
11469   using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
11470   struct MemoryFdPropertiesKHR;
11471 #ifdef VK_USE_PLATFORM_ANDROID_KHR
11472   struct MemoryGetAndroidHardwareBufferInfoANDROID;
11473 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11474   struct MemoryGetFdInfoKHR;
11475 #ifdef VK_USE_PLATFORM_WIN32_KHR
11476   struct MemoryGetWin32HandleInfoKHR;
11477 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11478   struct MemoryHeap;
11479   struct MemoryHostPointerPropertiesEXT;
11480   struct MemoryPriorityAllocateInfoEXT;
11481   struct MemoryRequirements;
11482   struct MemoryRequirements2;
11483   using MemoryRequirements2KHR = MemoryRequirements2;
11484   struct MemoryType;
11485 #ifdef VK_USE_PLATFORM_WIN32_KHR
11486   struct MemoryWin32HandlePropertiesKHR;
11487 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11488 #ifdef VK_USE_PLATFORM_METAL_EXT
11489   struct MetalSurfaceCreateInfoEXT;
11490 #endif /*VK_USE_PLATFORM_METAL_EXT*/
11491   struct MultisamplePropertiesEXT;
11492   struct ObjectTableCreateInfoNVX;
11493   struct ObjectTableDescriptorSetEntryNVX;
11494   struct ObjectTableEntryNVX;
11495   struct ObjectTableIndexBufferEntryNVX;
11496   struct ObjectTablePipelineEntryNVX;
11497   struct ObjectTablePushConstantEntryNVX;
11498   struct ObjectTableVertexBufferEntryNVX;
11499   struct Offset2D;
11500   struct Offset3D;
11501   struct PastPresentationTimingGOOGLE;
11502   struct PerformanceConfigurationAcquireInfoINTEL;
11503   struct PerformanceMarkerInfoINTEL;
11504   struct PerformanceOverrideInfoINTEL;
11505   struct PerformanceStreamMarkerInfoINTEL;
11506   union PerformanceValueDataINTEL;
11507   struct PerformanceValueINTEL;
11508   struct PhysicalDevice16BitStorageFeatures;
11509   using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
11510   struct PhysicalDevice8BitStorageFeaturesKHR;
11511   struct PhysicalDeviceASTCDecodeFeaturesEXT;
11512   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
11513   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
11514   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT;
11515   using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
11516   struct PhysicalDeviceCoherentMemoryFeaturesAMD;
11517   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV;
11518   struct PhysicalDeviceConditionalRenderingFeaturesEXT;
11519   struct PhysicalDeviceConservativeRasterizationPropertiesEXT;
11520   struct PhysicalDeviceCooperativeMatrixFeaturesNV;
11521   struct PhysicalDeviceCooperativeMatrixPropertiesNV;
11522   struct PhysicalDeviceCornerSampledImageFeaturesNV;
11523   struct PhysicalDeviceCoverageReductionModeFeaturesNV;
11524   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
11525   struct PhysicalDeviceDepthClipEnableFeaturesEXT;
11526   struct PhysicalDeviceDepthStencilResolvePropertiesKHR;
11527   struct PhysicalDeviceDescriptorIndexingFeaturesEXT;
11528   struct PhysicalDeviceDescriptorIndexingPropertiesEXT;
11529   struct PhysicalDeviceDiscardRectanglePropertiesEXT;
11530   struct PhysicalDeviceDriverPropertiesKHR;
11531   struct PhysicalDeviceExclusiveScissorFeaturesNV;
11532   struct PhysicalDeviceExternalBufferInfo;
11533   using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
11534   struct PhysicalDeviceExternalFenceInfo;
11535   using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
11536   struct PhysicalDeviceExternalImageFormatInfo;
11537   using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
11538   struct PhysicalDeviceExternalMemoryHostPropertiesEXT;
11539   struct PhysicalDeviceExternalSemaphoreInfo;
11540   using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
11541   struct PhysicalDeviceFeatures;
11542   struct PhysicalDeviceFeatures2;
11543   using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
11544   struct PhysicalDeviceFloatControlsPropertiesKHR;
11545   struct PhysicalDeviceFragmentDensityMapFeaturesEXT;
11546   struct PhysicalDeviceFragmentDensityMapPropertiesEXT;
11547   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
11548   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
11549   struct PhysicalDeviceGroupProperties;
11550   using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
11551   struct PhysicalDeviceHostQueryResetFeaturesEXT;
11552   struct PhysicalDeviceIDProperties;
11553   using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
11554   struct PhysicalDeviceImageDrmFormatModifierInfoEXT;
11555   struct PhysicalDeviceImageFormatInfo2;
11556   using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
11557   struct PhysicalDeviceImageViewImageFormatInfoEXT;
11558   struct PhysicalDeviceImagelessFramebufferFeaturesKHR;
11559   struct PhysicalDeviceIndexTypeUint8FeaturesEXT;
11560   struct PhysicalDeviceInlineUniformBlockFeaturesEXT;
11561   struct PhysicalDeviceInlineUniformBlockPropertiesEXT;
11562   struct PhysicalDeviceLimits;
11563   struct PhysicalDeviceLineRasterizationFeaturesEXT;
11564   struct PhysicalDeviceLineRasterizationPropertiesEXT;
11565   struct PhysicalDeviceMaintenance3Properties;
11566   using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
11567   struct PhysicalDeviceMemoryBudgetPropertiesEXT;
11568   struct PhysicalDeviceMemoryPriorityFeaturesEXT;
11569   struct PhysicalDeviceMemoryProperties;
11570   struct PhysicalDeviceMemoryProperties2;
11571   using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
11572   struct PhysicalDeviceMeshShaderFeaturesNV;
11573   struct PhysicalDeviceMeshShaderPropertiesNV;
11574   struct PhysicalDeviceMultiviewFeatures;
11575   using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
11576   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
11577   struct PhysicalDeviceMultiviewProperties;
11578   using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
11579   struct PhysicalDevicePCIBusInfoPropertiesEXT;
11580   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11581   struct PhysicalDevicePointClippingProperties;
11582   using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
11583   struct PhysicalDeviceProperties;
11584   struct PhysicalDeviceProperties2;
11585   using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
11586   struct PhysicalDeviceProtectedMemoryFeatures;
11587   struct PhysicalDeviceProtectedMemoryProperties;
11588   struct PhysicalDevicePushDescriptorPropertiesKHR;
11589   struct PhysicalDeviceRayTracingPropertiesNV;
11590   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
11591   struct PhysicalDeviceSampleLocationsPropertiesEXT;
11592   struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
11593   struct PhysicalDeviceSamplerYcbcrConversionFeatures;
11594   using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
11595   struct PhysicalDeviceScalarBlockLayoutFeaturesEXT;
11596   struct PhysicalDeviceShaderAtomicInt64FeaturesKHR;
11597   struct PhysicalDeviceShaderCoreProperties2AMD;
11598   struct PhysicalDeviceShaderCorePropertiesAMD;
11599   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
11600   struct PhysicalDeviceShaderDrawParametersFeatures;
11601   using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
11602   struct PhysicalDeviceShaderFloat16Int8FeaturesKHR;
11603   using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8FeaturesKHR;
11604   struct PhysicalDeviceShaderImageFootprintFeaturesNV;
11605   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
11606   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV;
11607   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV;
11608   struct PhysicalDeviceShadingRateImageFeaturesNV;
11609   struct PhysicalDeviceShadingRateImagePropertiesNV;
11610   struct PhysicalDeviceSparseImageFormatInfo2;
11611   using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
11612   struct PhysicalDeviceSparseProperties;
11613   struct PhysicalDeviceSubgroupProperties;
11614   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT;
11615   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT;
11616   struct PhysicalDeviceSurfaceInfo2KHR;
11617   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
11618   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
11619   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
11620   struct PhysicalDeviceTransformFeedbackFeaturesEXT;
11621   struct PhysicalDeviceTransformFeedbackPropertiesEXT;
11622   struct PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11623   struct PhysicalDeviceVariablePointersFeatures;
11624   using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
11625   using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
11626   using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
11627   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
11628   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
11629   struct PhysicalDeviceVulkanMemoryModelFeaturesKHR;
11630   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT;
11631   struct PipelineCacheCreateInfo;
11632   struct PipelineColorBlendAdvancedStateCreateInfoEXT;
11633   struct PipelineColorBlendAttachmentState;
11634   struct PipelineColorBlendStateCreateInfo;
11635   struct PipelineCompilerControlCreateInfoAMD;
11636   struct PipelineCoverageModulationStateCreateInfoNV;
11637   struct PipelineCoverageReductionStateCreateInfoNV;
11638   struct PipelineCoverageToColorStateCreateInfoNV;
11639   struct PipelineCreationFeedbackCreateInfoEXT;
11640   struct PipelineCreationFeedbackEXT;
11641   struct PipelineDepthStencilStateCreateInfo;
11642   struct PipelineDiscardRectangleStateCreateInfoEXT;
11643   struct PipelineDynamicStateCreateInfo;
11644   struct PipelineExecutableInfoKHR;
11645   struct PipelineExecutableInternalRepresentationKHR;
11646   struct PipelineExecutablePropertiesKHR;
11647   struct PipelineExecutableStatisticKHR;
11648   union PipelineExecutableStatisticValueKHR;
11649   struct PipelineInfoKHR;
11650   struct PipelineInputAssemblyStateCreateInfo;
11651   struct PipelineLayoutCreateInfo;
11652   struct PipelineMultisampleStateCreateInfo;
11653   struct PipelineRasterizationConservativeStateCreateInfoEXT;
11654   struct PipelineRasterizationDepthClipStateCreateInfoEXT;
11655   struct PipelineRasterizationLineStateCreateInfoEXT;
11656   struct PipelineRasterizationStateCreateInfo;
11657   struct PipelineRasterizationStateRasterizationOrderAMD;
11658   struct PipelineRasterizationStateStreamCreateInfoEXT;
11659   struct PipelineRepresentativeFragmentTestStateCreateInfoNV;
11660   struct PipelineSampleLocationsStateCreateInfoEXT;
11661   struct PipelineShaderStageCreateInfo;
11662   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
11663   struct PipelineTessellationDomainOriginStateCreateInfo;
11664   using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
11665   struct PipelineTessellationStateCreateInfo;
11666   struct PipelineVertexInputDivisorStateCreateInfoEXT;
11667   struct PipelineVertexInputStateCreateInfo;
11668   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV;
11669   struct PipelineViewportExclusiveScissorStateCreateInfoNV;
11670   struct PipelineViewportShadingRateImageStateCreateInfoNV;
11671   struct PipelineViewportStateCreateInfo;
11672   struct PipelineViewportSwizzleStateCreateInfoNV;
11673   struct PipelineViewportWScalingStateCreateInfoNV;
11674 #ifdef VK_USE_PLATFORM_GGP
11675   struct PresentFrameTokenGGP;
11676 #endif /*VK_USE_PLATFORM_GGP*/
11677   struct PresentInfoKHR;
11678   struct PresentRegionKHR;
11679   struct PresentRegionsKHR;
11680   struct PresentTimeGOOGLE;
11681   struct PresentTimesInfoGOOGLE;
11682   struct ProtectedSubmitInfo;
11683   struct PushConstantRange;
11684   struct QueryPoolCreateInfo;
11685   struct QueryPoolCreateInfoINTEL;
11686   struct QueueFamilyCheckpointPropertiesNV;
11687   struct QueueFamilyProperties;
11688   struct QueueFamilyProperties2;
11689   using QueueFamilyProperties2KHR = QueueFamilyProperties2;
11690   struct RayTracingPipelineCreateInfoNV;
11691   struct RayTracingShaderGroupCreateInfoNV;
11692   struct Rect2D;
11693   struct RectLayerKHR;
11694   struct RefreshCycleDurationGOOGLE;
11695   struct RenderPassAttachmentBeginInfoKHR;
11696   struct RenderPassBeginInfo;
11697   struct RenderPassCreateInfo;
11698   struct RenderPassCreateInfo2KHR;
11699   struct RenderPassFragmentDensityMapCreateInfoEXT;
11700   struct RenderPassInputAttachmentAspectCreateInfo;
11701   using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
11702   struct RenderPassMultiviewCreateInfo;
11703   using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
11704   struct RenderPassSampleLocationsBeginInfoEXT;
11705   struct SampleLocationEXT;
11706   struct SampleLocationsInfoEXT;
11707   struct SamplerCreateInfo;
11708   struct SamplerReductionModeCreateInfoEXT;
11709   struct SamplerYcbcrConversionCreateInfo;
11710   using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
11711   struct SamplerYcbcrConversionImageFormatProperties;
11712   using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
11713   struct SamplerYcbcrConversionInfo;
11714   using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
11715   struct SemaphoreCreateInfo;
11716   struct SemaphoreGetFdInfoKHR;
11717 #ifdef VK_USE_PLATFORM_WIN32_KHR
11718   struct SemaphoreGetWin32HandleInfoKHR;
11719 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11720   struct ShaderModuleCreateInfo;
11721   struct ShaderModuleValidationCacheCreateInfoEXT;
11722   struct ShaderResourceUsageAMD;
11723   struct ShaderStatisticsInfoAMD;
11724   struct ShadingRatePaletteNV;
11725   struct SharedPresentSurfaceCapabilitiesKHR;
11726   struct SparseBufferMemoryBindInfo;
11727   struct SparseImageFormatProperties;
11728   struct SparseImageFormatProperties2;
11729   using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
11730   struct SparseImageMemoryBind;
11731   struct SparseImageMemoryBindInfo;
11732   struct SparseImageMemoryRequirements;
11733   struct SparseImageMemoryRequirements2;
11734   using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
11735   struct SparseImageOpaqueMemoryBindInfo;
11736   struct SparseMemoryBind;
11737   struct SpecializationInfo;
11738   struct SpecializationMapEntry;
11739   struct StencilOpState;
11740 #ifdef VK_USE_PLATFORM_GGP
11741   struct StreamDescriptorSurfaceCreateInfoGGP;
11742 #endif /*VK_USE_PLATFORM_GGP*/
11743   struct SubmitInfo;
11744   struct SubpassBeginInfoKHR;
11745   struct SubpassDependency;
11746   struct SubpassDependency2KHR;
11747   struct SubpassDescription;
11748   struct SubpassDescription2KHR;
11749   struct SubpassDescriptionDepthStencilResolveKHR;
11750   struct SubpassEndInfoKHR;
11751   struct SubpassSampleLocationsEXT;
11752   struct SubresourceLayout;
11753   struct SurfaceCapabilities2EXT;
11754   struct SurfaceCapabilities2KHR;
11755 #ifdef VK_USE_PLATFORM_WIN32_KHR
11756   struct SurfaceCapabilitiesFullScreenExclusiveEXT;
11757 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11758   struct SurfaceCapabilitiesKHR;
11759   struct SurfaceFormat2KHR;
11760   struct SurfaceFormatKHR;
11761 #ifdef VK_USE_PLATFORM_WIN32_KHR
11762   struct SurfaceFullScreenExclusiveInfoEXT;
11763 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11764 #ifdef VK_USE_PLATFORM_WIN32_KHR
11765   struct SurfaceFullScreenExclusiveWin32InfoEXT;
11766 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11767   struct SurfaceProtectedCapabilitiesKHR;
11768   struct SwapchainCounterCreateInfoEXT;
11769   struct SwapchainCreateInfoKHR;
11770   struct SwapchainDisplayNativeHdrCreateInfoAMD;
11771   struct TextureLODGatherFormatPropertiesAMD;
11772   struct ValidationCacheCreateInfoEXT;
11773   struct ValidationFeaturesEXT;
11774   struct ValidationFlagsEXT;
11775   struct VertexInputAttributeDescription;
11776   struct VertexInputBindingDescription;
11777   struct VertexInputBindingDivisorDescriptionEXT;
11778 #ifdef VK_USE_PLATFORM_VI_NN
11779   struct ViSurfaceCreateInfoNN;
11780 #endif /*VK_USE_PLATFORM_VI_NN*/
11781   struct Viewport;
11782   struct ViewportSwizzleNV;
11783   struct ViewportWScalingNV;
11784 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
11785   struct WaylandSurfaceCreateInfoKHR;
11786 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
11787 #ifdef VK_USE_PLATFORM_WIN32_KHR
11788   struct Win32KeyedMutexAcquireReleaseInfoKHR;
11789 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11790 #ifdef VK_USE_PLATFORM_WIN32_KHR
11791   struct Win32KeyedMutexAcquireReleaseInfoNV;
11792 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11793 #ifdef VK_USE_PLATFORM_WIN32_KHR
11794   struct Win32SurfaceCreateInfoKHR;
11795 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11796   struct WriteDescriptorSet;
11797   struct WriteDescriptorSetAccelerationStructureNV;
11798   struct WriteDescriptorSetInlineUniformBlockEXT;
11799   struct XYColorEXT;
11800 #ifdef VK_USE_PLATFORM_XCB_KHR
11801   struct XcbSurfaceCreateInfoKHR;
11802 #endif /*VK_USE_PLATFORM_XCB_KHR*/
11803 #ifdef VK_USE_PLATFORM_XLIB_KHR
11804   struct XlibSurfaceCreateInfoKHR;
11805 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
11806 
11807   class SurfaceKHR
11808   {
11809   public:
11810     using CType = VkSurfaceKHR;
11811 
11812     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSurfaceKHR;
11813 
11814   public:
SurfaceKHR()11815     VULKAN_HPP_CONSTEXPR SurfaceKHR()
11816       : m_surfaceKHR(VK_NULL_HANDLE)
11817     {}
11818 
SurfaceKHR(std::nullptr_t)11819     VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t )
11820       : m_surfaceKHR(VK_NULL_HANDLE)
11821     {}
11822 
SurfaceKHR(VkSurfaceKHR surfaceKHR)11823     VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR )
11824       : m_surfaceKHR( surfaceKHR )
11825     {}
11826 
11827 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSurfaceKHR surfaceKHR)11828     SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR)
11829     {
11830       m_surfaceKHR = surfaceKHR;
11831       return *this;
11832     }
11833 #endif
11834 
operator =(std::nullptr_t)11835     SurfaceKHR & operator=( std::nullptr_t )
11836     {
11837       m_surfaceKHR = VK_NULL_HANDLE;
11838       return *this;
11839     }
11840 
operator ==(SurfaceKHR const & rhs) const11841     bool operator==( SurfaceKHR const & rhs ) const
11842     {
11843       return m_surfaceKHR == rhs.m_surfaceKHR;
11844     }
11845 
operator !=(SurfaceKHR const & rhs) const11846     bool operator!=(SurfaceKHR const & rhs ) const
11847     {
11848       return m_surfaceKHR != rhs.m_surfaceKHR;
11849     }
11850 
operator <(SurfaceKHR const & rhs) const11851     bool operator<(SurfaceKHR const & rhs ) const
11852     {
11853       return m_surfaceKHR < rhs.m_surfaceKHR;
11854     }
11855 
operator VkSurfaceKHR() const11856     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const
11857     {
11858       return m_surfaceKHR;
11859     }
11860 
operator bool() const11861     explicit operator bool() const
11862     {
11863       return m_surfaceKHR != VK_NULL_HANDLE;
11864     }
11865 
operator !() const11866     bool operator!() const
11867     {
11868       return m_surfaceKHR == VK_NULL_HANDLE;
11869     }
11870 
11871   private:
11872     VkSurfaceKHR m_surfaceKHR;
11873   };
11874   static_assert( sizeof( SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
11875 
11876   template <>
11877   struct cpp_type<ObjectType::eSurfaceKHR>
11878   {
11879     using type = SurfaceKHR;
11880   };
11881 
11882   class DebugReportCallbackEXT
11883   {
11884   public:
11885     using CType = VkDebugReportCallbackEXT;
11886 
11887     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugReportCallbackEXT;
11888 
11889   public:
DebugReportCallbackEXT()11890     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT()
11891       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
11892     {}
11893 
DebugReportCallbackEXT(std::nullptr_t)11894     VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t )
11895       : m_debugReportCallbackEXT(VK_NULL_HANDLE)
11896     {}
11897 
DebugReportCallbackEXT(VkDebugReportCallbackEXT debugReportCallbackEXT)11898     VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT )
11899       : m_debugReportCallbackEXT( debugReportCallbackEXT )
11900     {}
11901 
11902 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugReportCallbackEXT debugReportCallbackEXT)11903     DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT)
11904     {
11905       m_debugReportCallbackEXT = debugReportCallbackEXT;
11906       return *this;
11907     }
11908 #endif
11909 
operator =(std::nullptr_t)11910     DebugReportCallbackEXT & operator=( std::nullptr_t )
11911     {
11912       m_debugReportCallbackEXT = VK_NULL_HANDLE;
11913       return *this;
11914     }
11915 
operator ==(DebugReportCallbackEXT const & rhs) const11916     bool operator==( DebugReportCallbackEXT const & rhs ) const
11917     {
11918       return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
11919     }
11920 
operator !=(DebugReportCallbackEXT const & rhs) const11921     bool operator!=(DebugReportCallbackEXT const & rhs ) const
11922     {
11923       return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
11924     }
11925 
operator <(DebugReportCallbackEXT const & rhs) const11926     bool operator<(DebugReportCallbackEXT const & rhs ) const
11927     {
11928       return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
11929     }
11930 
operator VkDebugReportCallbackEXT() const11931     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const
11932     {
11933       return m_debugReportCallbackEXT;
11934     }
11935 
operator bool() const11936     explicit operator bool() const
11937     {
11938       return m_debugReportCallbackEXT != VK_NULL_HANDLE;
11939     }
11940 
operator !() const11941     bool operator!() const
11942     {
11943       return m_debugReportCallbackEXT == VK_NULL_HANDLE;
11944     }
11945 
11946   private:
11947     VkDebugReportCallbackEXT m_debugReportCallbackEXT;
11948   };
11949   static_assert( sizeof( DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
11950 
11951   template <>
11952   struct cpp_type<ObjectType::eDebugReportCallbackEXT>
11953   {
11954     using type = DebugReportCallbackEXT;
11955   };
11956 
11957   class DebugUtilsMessengerEXT
11958   {
11959   public:
11960     using CType = VkDebugUtilsMessengerEXT;
11961 
11962     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugUtilsMessengerEXT;
11963 
11964   public:
DebugUtilsMessengerEXT()11965     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT()
11966       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
11967     {}
11968 
DebugUtilsMessengerEXT(std::nullptr_t)11969     VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t )
11970       : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
11971     {}
11972 
DebugUtilsMessengerEXT(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)11973     VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT )
11974       : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
11975     {}
11976 
11977 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)11978     DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)
11979     {
11980       m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
11981       return *this;
11982     }
11983 #endif
11984 
operator =(std::nullptr_t)11985     DebugUtilsMessengerEXT & operator=( std::nullptr_t )
11986     {
11987       m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
11988       return *this;
11989     }
11990 
operator ==(DebugUtilsMessengerEXT const & rhs) const11991     bool operator==( DebugUtilsMessengerEXT const & rhs ) const
11992     {
11993       return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
11994     }
11995 
operator !=(DebugUtilsMessengerEXT const & rhs) const11996     bool operator!=(DebugUtilsMessengerEXT const & rhs ) const
11997     {
11998       return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
11999     }
12000 
operator <(DebugUtilsMessengerEXT const & rhs) const12001     bool operator<(DebugUtilsMessengerEXT const & rhs ) const
12002     {
12003       return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
12004     }
12005 
operator VkDebugUtilsMessengerEXT() const12006     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const
12007     {
12008       return m_debugUtilsMessengerEXT;
12009     }
12010 
operator bool() const12011     explicit operator bool() const
12012     {
12013       return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
12014     }
12015 
operator !() const12016     bool operator!() const
12017     {
12018       return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
12019     }
12020 
12021   private:
12022     VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
12023   };
12024   static_assert( sizeof( DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
12025 
12026   template <>
12027   struct cpp_type<ObjectType::eDebugUtilsMessengerEXT>
12028   {
12029     using type = DebugUtilsMessengerEXT;
12030   };
12031 
12032   class DisplayKHR
12033   {
12034   public:
12035     using CType = VkDisplayKHR;
12036 
12037     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayKHR;
12038 
12039   public:
DisplayKHR()12040     VULKAN_HPP_CONSTEXPR DisplayKHR()
12041       : m_displayKHR(VK_NULL_HANDLE)
12042     {}
12043 
DisplayKHR(std::nullptr_t)12044     VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t )
12045       : m_displayKHR(VK_NULL_HANDLE)
12046     {}
12047 
DisplayKHR(VkDisplayKHR displayKHR)12048     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR )
12049       : m_displayKHR( displayKHR )
12050     {}
12051 
12052 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayKHR displayKHR)12053     DisplayKHR & operator=(VkDisplayKHR displayKHR)
12054     {
12055       m_displayKHR = displayKHR;
12056       return *this;
12057     }
12058 #endif
12059 
operator =(std::nullptr_t)12060     DisplayKHR & operator=( std::nullptr_t )
12061     {
12062       m_displayKHR = VK_NULL_HANDLE;
12063       return *this;
12064     }
12065 
operator ==(DisplayKHR const & rhs) const12066     bool operator==( DisplayKHR const & rhs ) const
12067     {
12068       return m_displayKHR == rhs.m_displayKHR;
12069     }
12070 
operator !=(DisplayKHR const & rhs) const12071     bool operator!=(DisplayKHR const & rhs ) const
12072     {
12073       return m_displayKHR != rhs.m_displayKHR;
12074     }
12075 
operator <(DisplayKHR const & rhs) const12076     bool operator<(DisplayKHR const & rhs ) const
12077     {
12078       return m_displayKHR < rhs.m_displayKHR;
12079     }
12080 
operator VkDisplayKHR() const12081     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const
12082     {
12083       return m_displayKHR;
12084     }
12085 
operator bool() const12086     explicit operator bool() const
12087     {
12088       return m_displayKHR != VK_NULL_HANDLE;
12089     }
12090 
operator !() const12091     bool operator!() const
12092     {
12093       return m_displayKHR == VK_NULL_HANDLE;
12094     }
12095 
12096   private:
12097     VkDisplayKHR m_displayKHR;
12098   };
12099   static_assert( sizeof( DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
12100 
12101   template <>
12102   struct cpp_type<ObjectType::eDisplayKHR>
12103   {
12104     using type = DisplayKHR;
12105   };
12106 
12107   class SwapchainKHR
12108   {
12109   public:
12110     using CType = VkSwapchainKHR;
12111 
12112     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSwapchainKHR;
12113 
12114   public:
SwapchainKHR()12115     VULKAN_HPP_CONSTEXPR SwapchainKHR()
12116       : m_swapchainKHR(VK_NULL_HANDLE)
12117     {}
12118 
SwapchainKHR(std::nullptr_t)12119     VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t )
12120       : m_swapchainKHR(VK_NULL_HANDLE)
12121     {}
12122 
SwapchainKHR(VkSwapchainKHR swapchainKHR)12123     VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR )
12124       : m_swapchainKHR( swapchainKHR )
12125     {}
12126 
12127 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSwapchainKHR swapchainKHR)12128     SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR)
12129     {
12130       m_swapchainKHR = swapchainKHR;
12131       return *this;
12132     }
12133 #endif
12134 
operator =(std::nullptr_t)12135     SwapchainKHR & operator=( std::nullptr_t )
12136     {
12137       m_swapchainKHR = VK_NULL_HANDLE;
12138       return *this;
12139     }
12140 
operator ==(SwapchainKHR const & rhs) const12141     bool operator==( SwapchainKHR const & rhs ) const
12142     {
12143       return m_swapchainKHR == rhs.m_swapchainKHR;
12144     }
12145 
operator !=(SwapchainKHR const & rhs) const12146     bool operator!=(SwapchainKHR const & rhs ) const
12147     {
12148       return m_swapchainKHR != rhs.m_swapchainKHR;
12149     }
12150 
operator <(SwapchainKHR const & rhs) const12151     bool operator<(SwapchainKHR const & rhs ) const
12152     {
12153       return m_swapchainKHR < rhs.m_swapchainKHR;
12154     }
12155 
operator VkSwapchainKHR() const12156     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const
12157     {
12158       return m_swapchainKHR;
12159     }
12160 
operator bool() const12161     explicit operator bool() const
12162     {
12163       return m_swapchainKHR != VK_NULL_HANDLE;
12164     }
12165 
operator !() const12166     bool operator!() const
12167     {
12168       return m_swapchainKHR == VK_NULL_HANDLE;
12169     }
12170 
12171   private:
12172     VkSwapchainKHR m_swapchainKHR;
12173   };
12174   static_assert( sizeof( SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
12175 
12176   template <>
12177   struct cpp_type<ObjectType::eSwapchainKHR>
12178   {
12179     using type = SwapchainKHR;
12180   };
12181 
12182   class Semaphore
12183   {
12184   public:
12185     using CType = VkSemaphore;
12186 
12187     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSemaphore;
12188 
12189   public:
Semaphore()12190     VULKAN_HPP_CONSTEXPR Semaphore()
12191       : m_semaphore(VK_NULL_HANDLE)
12192     {}
12193 
Semaphore(std::nullptr_t)12194     VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t )
12195       : m_semaphore(VK_NULL_HANDLE)
12196     {}
12197 
Semaphore(VkSemaphore semaphore)12198     VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore )
12199       : m_semaphore( semaphore )
12200     {}
12201 
12202 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSemaphore semaphore)12203     Semaphore & operator=(VkSemaphore semaphore)
12204     {
12205       m_semaphore = semaphore;
12206       return *this;
12207     }
12208 #endif
12209 
operator =(std::nullptr_t)12210     Semaphore & operator=( std::nullptr_t )
12211     {
12212       m_semaphore = VK_NULL_HANDLE;
12213       return *this;
12214     }
12215 
operator ==(Semaphore const & rhs) const12216     bool operator==( Semaphore const & rhs ) const
12217     {
12218       return m_semaphore == rhs.m_semaphore;
12219     }
12220 
operator !=(Semaphore const & rhs) const12221     bool operator!=(Semaphore const & rhs ) const
12222     {
12223       return m_semaphore != rhs.m_semaphore;
12224     }
12225 
operator <(Semaphore const & rhs) const12226     bool operator<(Semaphore const & rhs ) const
12227     {
12228       return m_semaphore < rhs.m_semaphore;
12229     }
12230 
operator VkSemaphore() const12231     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const
12232     {
12233       return m_semaphore;
12234     }
12235 
operator bool() const12236     explicit operator bool() const
12237     {
12238       return m_semaphore != VK_NULL_HANDLE;
12239     }
12240 
operator !() const12241     bool operator!() const
12242     {
12243       return m_semaphore == VK_NULL_HANDLE;
12244     }
12245 
12246   private:
12247     VkSemaphore m_semaphore;
12248   };
12249   static_assert( sizeof( Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
12250 
12251   template <>
12252   struct cpp_type<ObjectType::eSemaphore>
12253   {
12254     using type = Semaphore;
12255   };
12256 
12257   class Fence
12258   {
12259   public:
12260     using CType = VkFence;
12261 
12262     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFence;
12263 
12264   public:
Fence()12265     VULKAN_HPP_CONSTEXPR Fence()
12266       : m_fence(VK_NULL_HANDLE)
12267     {}
12268 
Fence(std::nullptr_t)12269     VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t )
12270       : m_fence(VK_NULL_HANDLE)
12271     {}
12272 
Fence(VkFence fence)12273     VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence )
12274       : m_fence( fence )
12275     {}
12276 
12277 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFence fence)12278     Fence & operator=(VkFence fence)
12279     {
12280       m_fence = fence;
12281       return *this;
12282     }
12283 #endif
12284 
operator =(std::nullptr_t)12285     Fence & operator=( std::nullptr_t )
12286     {
12287       m_fence = VK_NULL_HANDLE;
12288       return *this;
12289     }
12290 
operator ==(Fence const & rhs) const12291     bool operator==( Fence const & rhs ) const
12292     {
12293       return m_fence == rhs.m_fence;
12294     }
12295 
operator !=(Fence const & rhs) const12296     bool operator!=(Fence const & rhs ) const
12297     {
12298       return m_fence != rhs.m_fence;
12299     }
12300 
operator <(Fence const & rhs) const12301     bool operator<(Fence const & rhs ) const
12302     {
12303       return m_fence < rhs.m_fence;
12304     }
12305 
operator VkFence() const12306     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const
12307     {
12308       return m_fence;
12309     }
12310 
operator bool() const12311     explicit operator bool() const
12312     {
12313       return m_fence != VK_NULL_HANDLE;
12314     }
12315 
operator !() const12316     bool operator!() const
12317     {
12318       return m_fence == VK_NULL_HANDLE;
12319     }
12320 
12321   private:
12322     VkFence m_fence;
12323   };
12324   static_assert( sizeof( Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
12325 
12326   template <>
12327   struct cpp_type<ObjectType::eFence>
12328   {
12329     using type = Fence;
12330   };
12331 
12332   class PerformanceConfigurationINTEL
12333   {
12334   public:
12335     using CType = VkPerformanceConfigurationINTEL;
12336 
12337     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePerformanceConfigurationINTEL;
12338 
12339   public:
PerformanceConfigurationINTEL()12340     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL()
12341       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
12342     {}
12343 
PerformanceConfigurationINTEL(std::nullptr_t)12344     VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t )
12345       : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
12346     {}
12347 
PerformanceConfigurationINTEL(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)12348     VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL )
12349       : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
12350     {}
12351 
12352 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)12353     PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)
12354     {
12355       m_performanceConfigurationINTEL = performanceConfigurationINTEL;
12356       return *this;
12357     }
12358 #endif
12359 
operator =(std::nullptr_t)12360     PerformanceConfigurationINTEL & operator=( std::nullptr_t )
12361     {
12362       m_performanceConfigurationINTEL = VK_NULL_HANDLE;
12363       return *this;
12364     }
12365 
operator ==(PerformanceConfigurationINTEL const & rhs) const12366     bool operator==( PerformanceConfigurationINTEL const & rhs ) const
12367     {
12368       return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
12369     }
12370 
operator !=(PerformanceConfigurationINTEL const & rhs) const12371     bool operator!=(PerformanceConfigurationINTEL const & rhs ) const
12372     {
12373       return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
12374     }
12375 
operator <(PerformanceConfigurationINTEL const & rhs) const12376     bool operator<(PerformanceConfigurationINTEL const & rhs ) const
12377     {
12378       return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
12379     }
12380 
operator VkPerformanceConfigurationINTEL() const12381     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const
12382     {
12383       return m_performanceConfigurationINTEL;
12384     }
12385 
operator bool() const12386     explicit operator bool() const
12387     {
12388       return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
12389     }
12390 
operator !() const12391     bool operator!() const
12392     {
12393       return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
12394     }
12395 
12396   private:
12397     VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
12398   };
12399   static_assert( sizeof( PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
12400 
12401   template <>
12402   struct cpp_type<ObjectType::ePerformanceConfigurationINTEL>
12403   {
12404     using type = PerformanceConfigurationINTEL;
12405   };
12406 
12407   class QueryPool
12408   {
12409   public:
12410     using CType = VkQueryPool;
12411 
12412     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueryPool;
12413 
12414   public:
QueryPool()12415     VULKAN_HPP_CONSTEXPR QueryPool()
12416       : m_queryPool(VK_NULL_HANDLE)
12417     {}
12418 
QueryPool(std::nullptr_t)12419     VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t )
12420       : m_queryPool(VK_NULL_HANDLE)
12421     {}
12422 
QueryPool(VkQueryPool queryPool)12423     VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool )
12424       : m_queryPool( queryPool )
12425     {}
12426 
12427 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueryPool queryPool)12428     QueryPool & operator=(VkQueryPool queryPool)
12429     {
12430       m_queryPool = queryPool;
12431       return *this;
12432     }
12433 #endif
12434 
operator =(std::nullptr_t)12435     QueryPool & operator=( std::nullptr_t )
12436     {
12437       m_queryPool = VK_NULL_HANDLE;
12438       return *this;
12439     }
12440 
operator ==(QueryPool const & rhs) const12441     bool operator==( QueryPool const & rhs ) const
12442     {
12443       return m_queryPool == rhs.m_queryPool;
12444     }
12445 
operator !=(QueryPool const & rhs) const12446     bool operator!=(QueryPool const & rhs ) const
12447     {
12448       return m_queryPool != rhs.m_queryPool;
12449     }
12450 
operator <(QueryPool const & rhs) const12451     bool operator<(QueryPool const & rhs ) const
12452     {
12453       return m_queryPool < rhs.m_queryPool;
12454     }
12455 
operator VkQueryPool() const12456     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const
12457     {
12458       return m_queryPool;
12459     }
12460 
operator bool() const12461     explicit operator bool() const
12462     {
12463       return m_queryPool != VK_NULL_HANDLE;
12464     }
12465 
operator !() const12466     bool operator!() const
12467     {
12468       return m_queryPool == VK_NULL_HANDLE;
12469     }
12470 
12471   private:
12472     VkQueryPool m_queryPool;
12473   };
12474   static_assert( sizeof( QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
12475 
12476   template <>
12477   struct cpp_type<ObjectType::eQueryPool>
12478   {
12479     using type = QueryPool;
12480   };
12481 
12482   class Buffer
12483   {
12484   public:
12485     using CType = VkBuffer;
12486 
12487     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBuffer;
12488 
12489   public:
Buffer()12490     VULKAN_HPP_CONSTEXPR Buffer()
12491       : m_buffer(VK_NULL_HANDLE)
12492     {}
12493 
Buffer(std::nullptr_t)12494     VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t )
12495       : m_buffer(VK_NULL_HANDLE)
12496     {}
12497 
Buffer(VkBuffer buffer)12498     VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer )
12499       : m_buffer( buffer )
12500     {}
12501 
12502 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBuffer buffer)12503     Buffer & operator=(VkBuffer buffer)
12504     {
12505       m_buffer = buffer;
12506       return *this;
12507     }
12508 #endif
12509 
operator =(std::nullptr_t)12510     Buffer & operator=( std::nullptr_t )
12511     {
12512       m_buffer = VK_NULL_HANDLE;
12513       return *this;
12514     }
12515 
operator ==(Buffer const & rhs) const12516     bool operator==( Buffer const & rhs ) const
12517     {
12518       return m_buffer == rhs.m_buffer;
12519     }
12520 
operator !=(Buffer const & rhs) const12521     bool operator!=(Buffer const & rhs ) const
12522     {
12523       return m_buffer != rhs.m_buffer;
12524     }
12525 
operator <(Buffer const & rhs) const12526     bool operator<(Buffer const & rhs ) const
12527     {
12528       return m_buffer < rhs.m_buffer;
12529     }
12530 
operator VkBuffer() const12531     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const
12532     {
12533       return m_buffer;
12534     }
12535 
operator bool() const12536     explicit operator bool() const
12537     {
12538       return m_buffer != VK_NULL_HANDLE;
12539     }
12540 
operator !() const12541     bool operator!() const
12542     {
12543       return m_buffer == VK_NULL_HANDLE;
12544     }
12545 
12546   private:
12547     VkBuffer m_buffer;
12548   };
12549   static_assert( sizeof( Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
12550 
12551   template <>
12552   struct cpp_type<ObjectType::eBuffer>
12553   {
12554     using type = Buffer;
12555   };
12556 
12557   class PipelineLayout
12558   {
12559   public:
12560     using CType = VkPipelineLayout;
12561 
12562     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineLayout;
12563 
12564   public:
PipelineLayout()12565     VULKAN_HPP_CONSTEXPR PipelineLayout()
12566       : m_pipelineLayout(VK_NULL_HANDLE)
12567     {}
12568 
PipelineLayout(std::nullptr_t)12569     VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t )
12570       : m_pipelineLayout(VK_NULL_HANDLE)
12571     {}
12572 
PipelineLayout(VkPipelineLayout pipelineLayout)12573     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout )
12574       : m_pipelineLayout( pipelineLayout )
12575     {}
12576 
12577 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineLayout pipelineLayout)12578     PipelineLayout & operator=(VkPipelineLayout pipelineLayout)
12579     {
12580       m_pipelineLayout = pipelineLayout;
12581       return *this;
12582     }
12583 #endif
12584 
operator =(std::nullptr_t)12585     PipelineLayout & operator=( std::nullptr_t )
12586     {
12587       m_pipelineLayout = VK_NULL_HANDLE;
12588       return *this;
12589     }
12590 
operator ==(PipelineLayout const & rhs) const12591     bool operator==( PipelineLayout const & rhs ) const
12592     {
12593       return m_pipelineLayout == rhs.m_pipelineLayout;
12594     }
12595 
operator !=(PipelineLayout const & rhs) const12596     bool operator!=(PipelineLayout const & rhs ) const
12597     {
12598       return m_pipelineLayout != rhs.m_pipelineLayout;
12599     }
12600 
operator <(PipelineLayout const & rhs) const12601     bool operator<(PipelineLayout const & rhs ) const
12602     {
12603       return m_pipelineLayout < rhs.m_pipelineLayout;
12604     }
12605 
operator VkPipelineLayout() const12606     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const
12607     {
12608       return m_pipelineLayout;
12609     }
12610 
operator bool() const12611     explicit operator bool() const
12612     {
12613       return m_pipelineLayout != VK_NULL_HANDLE;
12614     }
12615 
operator !() const12616     bool operator!() const
12617     {
12618       return m_pipelineLayout == VK_NULL_HANDLE;
12619     }
12620 
12621   private:
12622     VkPipelineLayout m_pipelineLayout;
12623   };
12624   static_assert( sizeof( PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
12625 
12626   template <>
12627   struct cpp_type<ObjectType::ePipelineLayout>
12628   {
12629     using type = PipelineLayout;
12630   };
12631 
12632   class DescriptorSet
12633   {
12634   public:
12635     using CType = VkDescriptorSet;
12636 
12637     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSet;
12638 
12639   public:
DescriptorSet()12640     VULKAN_HPP_CONSTEXPR DescriptorSet()
12641       : m_descriptorSet(VK_NULL_HANDLE)
12642     {}
12643 
DescriptorSet(std::nullptr_t)12644     VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t )
12645       : m_descriptorSet(VK_NULL_HANDLE)
12646     {}
12647 
DescriptorSet(VkDescriptorSet descriptorSet)12648     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet )
12649       : m_descriptorSet( descriptorSet )
12650     {}
12651 
12652 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSet descriptorSet)12653     DescriptorSet & operator=(VkDescriptorSet descriptorSet)
12654     {
12655       m_descriptorSet = descriptorSet;
12656       return *this;
12657     }
12658 #endif
12659 
operator =(std::nullptr_t)12660     DescriptorSet & operator=( std::nullptr_t )
12661     {
12662       m_descriptorSet = VK_NULL_HANDLE;
12663       return *this;
12664     }
12665 
operator ==(DescriptorSet const & rhs) const12666     bool operator==( DescriptorSet const & rhs ) const
12667     {
12668       return m_descriptorSet == rhs.m_descriptorSet;
12669     }
12670 
operator !=(DescriptorSet const & rhs) const12671     bool operator!=(DescriptorSet const & rhs ) const
12672     {
12673       return m_descriptorSet != rhs.m_descriptorSet;
12674     }
12675 
operator <(DescriptorSet const & rhs) const12676     bool operator<(DescriptorSet const & rhs ) const
12677     {
12678       return m_descriptorSet < rhs.m_descriptorSet;
12679     }
12680 
operator VkDescriptorSet() const12681     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const
12682     {
12683       return m_descriptorSet;
12684     }
12685 
operator bool() const12686     explicit operator bool() const
12687     {
12688       return m_descriptorSet != VK_NULL_HANDLE;
12689     }
12690 
operator !() const12691     bool operator!() const
12692     {
12693       return m_descriptorSet == VK_NULL_HANDLE;
12694     }
12695 
12696   private:
12697     VkDescriptorSet m_descriptorSet;
12698   };
12699   static_assert( sizeof( DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
12700 
12701   template <>
12702   struct cpp_type<ObjectType::eDescriptorSet>
12703   {
12704     using type = DescriptorSet;
12705   };
12706 
12707   class Pipeline
12708   {
12709   public:
12710     using CType = VkPipeline;
12711 
12712     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipeline;
12713 
12714   public:
Pipeline()12715     VULKAN_HPP_CONSTEXPR Pipeline()
12716       : m_pipeline(VK_NULL_HANDLE)
12717     {}
12718 
Pipeline(std::nullptr_t)12719     VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t )
12720       : m_pipeline(VK_NULL_HANDLE)
12721     {}
12722 
Pipeline(VkPipeline pipeline)12723     VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline )
12724       : m_pipeline( pipeline )
12725     {}
12726 
12727 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipeline pipeline)12728     Pipeline & operator=(VkPipeline pipeline)
12729     {
12730       m_pipeline = pipeline;
12731       return *this;
12732     }
12733 #endif
12734 
operator =(std::nullptr_t)12735     Pipeline & operator=( std::nullptr_t )
12736     {
12737       m_pipeline = VK_NULL_HANDLE;
12738       return *this;
12739     }
12740 
operator ==(Pipeline const & rhs) const12741     bool operator==( Pipeline const & rhs ) const
12742     {
12743       return m_pipeline == rhs.m_pipeline;
12744     }
12745 
operator !=(Pipeline const & rhs) const12746     bool operator!=(Pipeline const & rhs ) const
12747     {
12748       return m_pipeline != rhs.m_pipeline;
12749     }
12750 
operator <(Pipeline const & rhs) const12751     bool operator<(Pipeline const & rhs ) const
12752     {
12753       return m_pipeline < rhs.m_pipeline;
12754     }
12755 
operator VkPipeline() const12756     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const
12757     {
12758       return m_pipeline;
12759     }
12760 
operator bool() const12761     explicit operator bool() const
12762     {
12763       return m_pipeline != VK_NULL_HANDLE;
12764     }
12765 
operator !() const12766     bool operator!() const
12767     {
12768       return m_pipeline == VK_NULL_HANDLE;
12769     }
12770 
12771   private:
12772     VkPipeline m_pipeline;
12773   };
12774   static_assert( sizeof( Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
12775 
12776   template <>
12777   struct cpp_type<ObjectType::ePipeline>
12778   {
12779     using type = Pipeline;
12780   };
12781 
12782   class ImageView
12783   {
12784   public:
12785     using CType = VkImageView;
12786 
12787     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImageView;
12788 
12789   public:
ImageView()12790     VULKAN_HPP_CONSTEXPR ImageView()
12791       : m_imageView(VK_NULL_HANDLE)
12792     {}
12793 
ImageView(std::nullptr_t)12794     VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t )
12795       : m_imageView(VK_NULL_HANDLE)
12796     {}
12797 
ImageView(VkImageView imageView)12798     VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView )
12799       : m_imageView( imageView )
12800     {}
12801 
12802 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImageView imageView)12803     ImageView & operator=(VkImageView imageView)
12804     {
12805       m_imageView = imageView;
12806       return *this;
12807     }
12808 #endif
12809 
operator =(std::nullptr_t)12810     ImageView & operator=( std::nullptr_t )
12811     {
12812       m_imageView = VK_NULL_HANDLE;
12813       return *this;
12814     }
12815 
operator ==(ImageView const & rhs) const12816     bool operator==( ImageView const & rhs ) const
12817     {
12818       return m_imageView == rhs.m_imageView;
12819     }
12820 
operator !=(ImageView const & rhs) const12821     bool operator!=(ImageView const & rhs ) const
12822     {
12823       return m_imageView != rhs.m_imageView;
12824     }
12825 
operator <(ImageView const & rhs) const12826     bool operator<(ImageView const & rhs ) const
12827     {
12828       return m_imageView < rhs.m_imageView;
12829     }
12830 
operator VkImageView() const12831     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const
12832     {
12833       return m_imageView;
12834     }
12835 
operator bool() const12836     explicit operator bool() const
12837     {
12838       return m_imageView != VK_NULL_HANDLE;
12839     }
12840 
operator !() const12841     bool operator!() const
12842     {
12843       return m_imageView == VK_NULL_HANDLE;
12844     }
12845 
12846   private:
12847     VkImageView m_imageView;
12848   };
12849   static_assert( sizeof( ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
12850 
12851   template <>
12852   struct cpp_type<ObjectType::eImageView>
12853   {
12854     using type = ImageView;
12855   };
12856 
12857   class Image
12858   {
12859   public:
12860     using CType = VkImage;
12861 
12862     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImage;
12863 
12864   public:
Image()12865     VULKAN_HPP_CONSTEXPR Image()
12866       : m_image(VK_NULL_HANDLE)
12867     {}
12868 
Image(std::nullptr_t)12869     VULKAN_HPP_CONSTEXPR Image( std::nullptr_t )
12870       : m_image(VK_NULL_HANDLE)
12871     {}
12872 
Image(VkImage image)12873     VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image )
12874       : m_image( image )
12875     {}
12876 
12877 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkImage image)12878     Image & operator=(VkImage image)
12879     {
12880       m_image = image;
12881       return *this;
12882     }
12883 #endif
12884 
operator =(std::nullptr_t)12885     Image & operator=( std::nullptr_t )
12886     {
12887       m_image = VK_NULL_HANDLE;
12888       return *this;
12889     }
12890 
operator ==(Image const & rhs) const12891     bool operator==( Image const & rhs ) const
12892     {
12893       return m_image == rhs.m_image;
12894     }
12895 
operator !=(Image const & rhs) const12896     bool operator!=(Image const & rhs ) const
12897     {
12898       return m_image != rhs.m_image;
12899     }
12900 
operator <(Image const & rhs) const12901     bool operator<(Image const & rhs ) const
12902     {
12903       return m_image < rhs.m_image;
12904     }
12905 
operator VkImage() const12906     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const
12907     {
12908       return m_image;
12909     }
12910 
operator bool() const12911     explicit operator bool() const
12912     {
12913       return m_image != VK_NULL_HANDLE;
12914     }
12915 
operator !() const12916     bool operator!() const
12917     {
12918       return m_image == VK_NULL_HANDLE;
12919     }
12920 
12921   private:
12922     VkImage m_image;
12923   };
12924   static_assert( sizeof( Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
12925 
12926   template <>
12927   struct cpp_type<ObjectType::eImage>
12928   {
12929     using type = Image;
12930   };
12931 
12932   class AccelerationStructureNV
12933   {
12934   public:
12935     using CType = VkAccelerationStructureNV;
12936 
12937     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eAccelerationStructureNV;
12938 
12939   public:
AccelerationStructureNV()12940     VULKAN_HPP_CONSTEXPR AccelerationStructureNV()
12941       : m_accelerationStructureNV(VK_NULL_HANDLE)
12942     {}
12943 
AccelerationStructureNV(std::nullptr_t)12944     VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t )
12945       : m_accelerationStructureNV(VK_NULL_HANDLE)
12946     {}
12947 
AccelerationStructureNV(VkAccelerationStructureNV accelerationStructureNV)12948     VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV )
12949       : m_accelerationStructureNV( accelerationStructureNV )
12950     {}
12951 
12952 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkAccelerationStructureNV accelerationStructureNV)12953     AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV)
12954     {
12955       m_accelerationStructureNV = accelerationStructureNV;
12956       return *this;
12957     }
12958 #endif
12959 
operator =(std::nullptr_t)12960     AccelerationStructureNV & operator=( std::nullptr_t )
12961     {
12962       m_accelerationStructureNV = VK_NULL_HANDLE;
12963       return *this;
12964     }
12965 
operator ==(AccelerationStructureNV const & rhs) const12966     bool operator==( AccelerationStructureNV const & rhs ) const
12967     {
12968       return m_accelerationStructureNV == rhs.m_accelerationStructureNV;
12969     }
12970 
operator !=(AccelerationStructureNV const & rhs) const12971     bool operator!=(AccelerationStructureNV const & rhs ) const
12972     {
12973       return m_accelerationStructureNV != rhs.m_accelerationStructureNV;
12974     }
12975 
operator <(AccelerationStructureNV const & rhs) const12976     bool operator<(AccelerationStructureNV const & rhs ) const
12977     {
12978       return m_accelerationStructureNV < rhs.m_accelerationStructureNV;
12979     }
12980 
operator VkAccelerationStructureNV() const12981     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const
12982     {
12983       return m_accelerationStructureNV;
12984     }
12985 
operator bool() const12986     explicit operator bool() const
12987     {
12988       return m_accelerationStructureNV != VK_NULL_HANDLE;
12989     }
12990 
operator !() const12991     bool operator!() const
12992     {
12993       return m_accelerationStructureNV == VK_NULL_HANDLE;
12994     }
12995 
12996   private:
12997     VkAccelerationStructureNV m_accelerationStructureNV;
12998   };
12999   static_assert( sizeof( AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" );
13000 
13001   template <>
13002   struct cpp_type<ObjectType::eAccelerationStructureNV>
13003   {
13004     using type = AccelerationStructureNV;
13005   };
13006 
13007   class DescriptorUpdateTemplate
13008   {
13009   public:
13010     using CType = VkDescriptorUpdateTemplate;
13011 
13012     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorUpdateTemplate;
13013 
13014   public:
DescriptorUpdateTemplate()13015     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate()
13016       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
13017     {}
13018 
DescriptorUpdateTemplate(std::nullptr_t)13019     VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t )
13020       : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
13021     {}
13022 
DescriptorUpdateTemplate(VkDescriptorUpdateTemplate descriptorUpdateTemplate)13023     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate )
13024       : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
13025     {}
13026 
13027 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorUpdateTemplate descriptorUpdateTemplate)13028     DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate)
13029     {
13030       m_descriptorUpdateTemplate = descriptorUpdateTemplate;
13031       return *this;
13032     }
13033 #endif
13034 
operator =(std::nullptr_t)13035     DescriptorUpdateTemplate & operator=( std::nullptr_t )
13036     {
13037       m_descriptorUpdateTemplate = VK_NULL_HANDLE;
13038       return *this;
13039     }
13040 
operator ==(DescriptorUpdateTemplate const & rhs) const13041     bool operator==( DescriptorUpdateTemplate const & rhs ) const
13042     {
13043       return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
13044     }
13045 
operator !=(DescriptorUpdateTemplate const & rhs) const13046     bool operator!=(DescriptorUpdateTemplate const & rhs ) const
13047     {
13048       return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
13049     }
13050 
operator <(DescriptorUpdateTemplate const & rhs) const13051     bool operator<(DescriptorUpdateTemplate const & rhs ) const
13052     {
13053       return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
13054     }
13055 
operator VkDescriptorUpdateTemplate() const13056     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const
13057     {
13058       return m_descriptorUpdateTemplate;
13059     }
13060 
operator bool() const13061     explicit operator bool() const
13062     {
13063       return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
13064     }
13065 
operator !() const13066     bool operator!() const
13067     {
13068       return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
13069     }
13070 
13071   private:
13072     VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
13073   };
13074   static_assert( sizeof( DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
13075 
13076   template <>
13077   struct cpp_type<ObjectType::eDescriptorUpdateTemplate>
13078   {
13079     using type = DescriptorUpdateTemplate;
13080   };
13081   using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
13082 
13083   class Event
13084   {
13085   public:
13086     using CType = VkEvent;
13087 
13088     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eEvent;
13089 
13090   public:
Event()13091     VULKAN_HPP_CONSTEXPR Event()
13092       : m_event(VK_NULL_HANDLE)
13093     {}
13094 
Event(std::nullptr_t)13095     VULKAN_HPP_CONSTEXPR Event( std::nullptr_t )
13096       : m_event(VK_NULL_HANDLE)
13097     {}
13098 
Event(VkEvent event)13099     VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event )
13100       : m_event( event )
13101     {}
13102 
13103 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkEvent event)13104     Event & operator=(VkEvent event)
13105     {
13106       m_event = event;
13107       return *this;
13108     }
13109 #endif
13110 
operator =(std::nullptr_t)13111     Event & operator=( std::nullptr_t )
13112     {
13113       m_event = VK_NULL_HANDLE;
13114       return *this;
13115     }
13116 
operator ==(Event const & rhs) const13117     bool operator==( Event const & rhs ) const
13118     {
13119       return m_event == rhs.m_event;
13120     }
13121 
operator !=(Event const & rhs) const13122     bool operator!=(Event const & rhs ) const
13123     {
13124       return m_event != rhs.m_event;
13125     }
13126 
operator <(Event const & rhs) const13127     bool operator<(Event const & rhs ) const
13128     {
13129       return m_event < rhs.m_event;
13130     }
13131 
operator VkEvent() const13132     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const
13133     {
13134       return m_event;
13135     }
13136 
operator bool() const13137     explicit operator bool() const
13138     {
13139       return m_event != VK_NULL_HANDLE;
13140     }
13141 
operator !() const13142     bool operator!() const
13143     {
13144       return m_event == VK_NULL_HANDLE;
13145     }
13146 
13147   private:
13148     VkEvent m_event;
13149   };
13150   static_assert( sizeof( Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
13151 
13152   template <>
13153   struct cpp_type<ObjectType::eEvent>
13154   {
13155     using type = Event;
13156   };
13157 
13158   class CommandBuffer
13159   {
13160   public:
13161     using CType = VkCommandBuffer;
13162 
13163     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandBuffer;
13164 
13165   public:
CommandBuffer()13166     VULKAN_HPP_CONSTEXPR CommandBuffer()
13167       : m_commandBuffer(VK_NULL_HANDLE)
13168     {}
13169 
CommandBuffer(std::nullptr_t)13170     VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t )
13171       : m_commandBuffer(VK_NULL_HANDLE)
13172     {}
13173 
CommandBuffer(VkCommandBuffer commandBuffer)13174     VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer )
13175       : m_commandBuffer( commandBuffer )
13176     {}
13177 
13178 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandBuffer commandBuffer)13179     CommandBuffer & operator=(VkCommandBuffer commandBuffer)
13180     {
13181       m_commandBuffer = commandBuffer;
13182       return *this;
13183     }
13184 #endif
13185 
operator =(std::nullptr_t)13186     CommandBuffer & operator=( std::nullptr_t )
13187     {
13188       m_commandBuffer = VK_NULL_HANDLE;
13189       return *this;
13190     }
13191 
operator ==(CommandBuffer const & rhs) const13192     bool operator==( CommandBuffer const & rhs ) const
13193     {
13194       return m_commandBuffer == rhs.m_commandBuffer;
13195     }
13196 
operator !=(CommandBuffer const & rhs) const13197     bool operator!=(CommandBuffer const & rhs ) const
13198     {
13199       return m_commandBuffer != rhs.m_commandBuffer;
13200     }
13201 
operator <(CommandBuffer const & rhs) const13202     bool operator<(CommandBuffer const & rhs ) const
13203     {
13204       return m_commandBuffer < rhs.m_commandBuffer;
13205     }
13206 
13207     template<typename Dispatch = DispatchLoaderDefault>
13208     Result begin( const vk::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d = Dispatch() ) const;
13209 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13210     template<typename Dispatch = DispatchLoaderDefault>
13211     ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d = Dispatch() ) const;
13212 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13213 
13214     template<typename Dispatch = DispatchLoaderDefault>
13215     void beginConditionalRenderingEXT( const vk::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d = Dispatch() ) const;
13216 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13217     template<typename Dispatch = DispatchLoaderDefault>
13218     void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d = Dispatch() ) const;
13219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13220 
13221     template<typename Dispatch = DispatchLoaderDefault>
13222     void beginDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
13223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13224     template<typename Dispatch = DispatchLoaderDefault>
13225     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
13226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13227 
13228     template<typename Dispatch = DispatchLoaderDefault>
13229     void beginQuery( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, Dispatch const &d = Dispatch() ) const;
13230 
13231     template<typename Dispatch = DispatchLoaderDefault>
13232     void beginQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, uint32_t index, Dispatch const &d = Dispatch() ) const;
13233 
13234     template<typename Dispatch = DispatchLoaderDefault>
13235     void beginRenderPass( const vk::RenderPassBeginInfo* pRenderPassBegin, vk::SubpassContents contents, Dispatch const &d = Dispatch() ) const;
13236 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13237     template<typename Dispatch = DispatchLoaderDefault>
13238     void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, vk::SubpassContents contents, Dispatch const &d = Dispatch() ) const;
13239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13240 
13241     template<typename Dispatch = DispatchLoaderDefault>
13242     void beginRenderPass2KHR( const vk::RenderPassBeginInfo* pRenderPassBegin, const vk::SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d = Dispatch() ) const;
13243 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13244     template<typename Dispatch = DispatchLoaderDefault>
13245     void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d = Dispatch() ) const;
13246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13247 
13248     template<typename Dispatch = DispatchLoaderDefault>
13249     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const vk::Buffer* pCounterBuffers, const vk::DeviceSize* pCounterBufferOffsets, Dispatch const &d = Dispatch() ) const;
13250 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13251     template<typename Dispatch = DispatchLoaderDefault>
13252     void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const vk::Buffer> counterBuffers, ArrayProxy<const vk::DeviceSize> counterBufferOffsets, Dispatch const &d = Dispatch() ) const;
13253 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13254 
13255     template<typename Dispatch = DispatchLoaderDefault>
13256     void bindDescriptorSets( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d = Dispatch() ) const;
13257 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13258     template<typename Dispatch = DispatchLoaderDefault>
13259     void bindDescriptorSets( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t firstSet, ArrayProxy<const vk::DescriptorSet> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d = Dispatch() ) const;
13260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13261 
13262     template<typename Dispatch = DispatchLoaderDefault>
13263     void bindIndexBuffer( vk::Buffer buffer, vk::DeviceSize offset, vk::IndexType indexType, Dispatch const &d = Dispatch() ) const;
13264 
13265     template<typename Dispatch = DispatchLoaderDefault>
13266     void bindPipeline( vk::PipelineBindPoint pipelineBindPoint, vk::Pipeline pipeline, Dispatch const &d = Dispatch() ) const;
13267 
13268     template<typename Dispatch = DispatchLoaderDefault>
13269     void bindShadingRateImageNV( vk::ImageView imageView, vk::ImageLayout imageLayout, Dispatch const &d = Dispatch() ) const;
13270 
13271     template<typename Dispatch = DispatchLoaderDefault>
13272     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const vk::Buffer* pBuffers, const vk::DeviceSize* pOffsets, const vk::DeviceSize* pSizes, Dispatch const &d = Dispatch() ) const;
13273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13274     template<typename Dispatch = DispatchLoaderDefault>
13275     void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const vk::Buffer> buffers, ArrayProxy<const vk::DeviceSize> offsets, ArrayProxy<const vk::DeviceSize> sizes, Dispatch const &d = Dispatch() ) const;
13276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13277 
13278     template<typename Dispatch = DispatchLoaderDefault>
13279     void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const vk::Buffer* pBuffers, const vk::DeviceSize* pOffsets, Dispatch const &d = Dispatch() ) const;
13280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13281     template<typename Dispatch = DispatchLoaderDefault>
13282     void bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const vk::Buffer> buffers, ArrayProxy<const vk::DeviceSize> offsets, Dispatch const &d = Dispatch() ) const;
13283 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13284 
13285     template<typename Dispatch = DispatchLoaderDefault>
13286     void blitImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageBlit* pRegions, vk::Filter filter, Dispatch const &d = Dispatch() ) const;
13287 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13288     template<typename Dispatch = DispatchLoaderDefault>
13289     void blitImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageBlit> regions, vk::Filter filter, Dispatch const &d = Dispatch() ) const;
13290 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13291 
13292     template<typename Dispatch = DispatchLoaderDefault>
13293     void buildAccelerationStructureNV( const vk::AccelerationStructureInfoNV* pInfo, vk::Buffer instanceData, vk::DeviceSize instanceOffset, vk::Bool32 update, vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::Buffer scratch, vk::DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const;
13294 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13295     template<typename Dispatch = DispatchLoaderDefault>
13296     void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, vk::Buffer instanceData, vk::DeviceSize instanceOffset, vk::Bool32 update, vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::Buffer scratch, vk::DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const;
13297 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13298 
13299     template<typename Dispatch = DispatchLoaderDefault>
13300     void clearAttachments( uint32_t attachmentCount, const vk::ClearAttachment* pAttachments, uint32_t rectCount, const vk::ClearRect* pRects, Dispatch const &d = Dispatch() ) const;
13301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13302     template<typename Dispatch = DispatchLoaderDefault>
13303     void clearAttachments( ArrayProxy<const vk::ClearAttachment> attachments, ArrayProxy<const vk::ClearRect> rects, Dispatch const &d = Dispatch() ) const;
13304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13305 
13306     template<typename Dispatch = DispatchLoaderDefault>
13307     void clearColorImage( vk::Image image, vk::ImageLayout imageLayout, const vk::ClearColorValue* pColor, uint32_t rangeCount, const vk::ImageSubresourceRange* pRanges, Dispatch const &d = Dispatch() ) const;
13308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13309     template<typename Dispatch = DispatchLoaderDefault>
13310     void clearColorImage( vk::Image image, vk::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const vk::ImageSubresourceRange> ranges, Dispatch const &d = Dispatch() ) const;
13311 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13312 
13313     template<typename Dispatch = DispatchLoaderDefault>
13314     void clearDepthStencilImage( vk::Image image, vk::ImageLayout imageLayout, const vk::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const vk::ImageSubresourceRange* pRanges, Dispatch const &d = Dispatch() ) const;
13315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13316     template<typename Dispatch = DispatchLoaderDefault>
13317     void clearDepthStencilImage( vk::Image image, vk::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const vk::ImageSubresourceRange> ranges, Dispatch const &d = Dispatch() ) const;
13318 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13319 
13320     template<typename Dispatch = DispatchLoaderDefault>
13321     void copyAccelerationStructureNV( vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::CopyAccelerationStructureModeNV mode, Dispatch const &d = Dispatch() ) const;
13322 
13323     template<typename Dispatch = DispatchLoaderDefault>
13324     void copyBuffer( vk::Buffer srcBuffer, vk::Buffer dstBuffer, uint32_t regionCount, const vk::BufferCopy* pRegions, Dispatch const &d = Dispatch() ) const;
13325 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13326     template<typename Dispatch = DispatchLoaderDefault>
13327     void copyBuffer( vk::Buffer srcBuffer, vk::Buffer dstBuffer, ArrayProxy<const vk::BufferCopy> regions, Dispatch const &d = Dispatch() ) const;
13328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13329 
13330     template<typename Dispatch = DispatchLoaderDefault>
13331     void copyBufferToImage( vk::Buffer srcBuffer, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::BufferImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
13332 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13333     template<typename Dispatch = DispatchLoaderDefault>
13334     void copyBufferToImage( vk::Buffer srcBuffer, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::BufferImageCopy> regions, Dispatch const &d = Dispatch() ) const;
13335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13336 
13337     template<typename Dispatch = DispatchLoaderDefault>
13338     void copyImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
13339 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13340     template<typename Dispatch = DispatchLoaderDefault>
13341     void copyImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageCopy> regions, Dispatch const &d = Dispatch() ) const;
13342 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13343 
13344     template<typename Dispatch = DispatchLoaderDefault>
13345     void copyImageToBuffer( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Buffer dstBuffer, uint32_t regionCount, const vk::BufferImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
13346 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13347     template<typename Dispatch = DispatchLoaderDefault>
13348     void copyImageToBuffer( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Buffer dstBuffer, ArrayProxy<const vk::BufferImageCopy> regions, Dispatch const &d = Dispatch() ) const;
13349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13350 
13351     template<typename Dispatch = DispatchLoaderDefault>
13352     void copyQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
13353 
13354     template<typename Dispatch = DispatchLoaderDefault>
13355     void debugMarkerBeginEXT( const vk::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
13356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13357     template<typename Dispatch = DispatchLoaderDefault>
13358     void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = Dispatch() ) const;
13359 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13360 
13361     template<typename Dispatch = DispatchLoaderDefault>
13362     void debugMarkerEndEXT(Dispatch const &d = Dispatch() ) const;
13363 
13364     template<typename Dispatch = DispatchLoaderDefault>
13365     void debugMarkerInsertEXT( const vk::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
13366 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13367     template<typename Dispatch = DispatchLoaderDefault>
13368     void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = Dispatch() ) const;
13369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13370 
13371     template<typename Dispatch = DispatchLoaderDefault>
13372     void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
13373 
13374     template<typename Dispatch = DispatchLoaderDefault>
13375     void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
13376 
13377     template<typename Dispatch = DispatchLoaderDefault>
13378     void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
13379 
13380     template<typename Dispatch = DispatchLoaderDefault>
13381     void dispatchIndirect( vk::Buffer buffer, vk::DeviceSize offset, Dispatch const &d = Dispatch() ) const;
13382 
13383     template<typename Dispatch = DispatchLoaderDefault>
13384     void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d = Dispatch() ) const;
13385 
13386     template<typename Dispatch = DispatchLoaderDefault>
13387     void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d = Dispatch() ) const;
13388 
13389     template<typename Dispatch = DispatchLoaderDefault>
13390     void drawIndexedIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13391 
13392     template<typename Dispatch = DispatchLoaderDefault>
13393     void drawIndexedIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13394 
13395     template<typename Dispatch = DispatchLoaderDefault>
13396     void drawIndexedIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13397 
13398     template<typename Dispatch = DispatchLoaderDefault>
13399     void drawIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13400 
13401     template<typename Dispatch = DispatchLoaderDefault>
13402     void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, vk::Buffer counterBuffer, vk::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d = Dispatch() ) const;
13403 
13404     template<typename Dispatch = DispatchLoaderDefault>
13405     void drawIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13406 
13407     template<typename Dispatch = DispatchLoaderDefault>
13408     void drawIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13409 
13410     template<typename Dispatch = DispatchLoaderDefault>
13411     void drawMeshTasksIndirectCountNV( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13412 
13413     template<typename Dispatch = DispatchLoaderDefault>
13414     void drawMeshTasksIndirectNV( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
13415 
13416     template<typename Dispatch = DispatchLoaderDefault>
13417     void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d = Dispatch() ) const;
13418 
13419     template<typename Dispatch = DispatchLoaderDefault>
13420     void endConditionalRenderingEXT(Dispatch const &d = Dispatch() ) const;
13421 
13422     template<typename Dispatch = DispatchLoaderDefault>
13423     void endDebugUtilsLabelEXT(Dispatch const &d = Dispatch() ) const;
13424 
13425     template<typename Dispatch = DispatchLoaderDefault>
13426     void endQuery( vk::QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const;
13427 
13428     template<typename Dispatch = DispatchLoaderDefault>
13429     void endQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d = Dispatch() ) const;
13430 
13431     template<typename Dispatch = DispatchLoaderDefault>
13432     void endRenderPass(Dispatch const &d = Dispatch() ) const;
13433 
13434     template<typename Dispatch = DispatchLoaderDefault>
13435     void endRenderPass2KHR( const vk::SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const;
13436 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13437     template<typename Dispatch = DispatchLoaderDefault>
13438     void endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const;
13439 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13440 
13441     template<typename Dispatch = DispatchLoaderDefault>
13442     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const vk::Buffer* pCounterBuffers, const vk::DeviceSize* pCounterBufferOffsets, Dispatch const &d = Dispatch() ) const;
13443 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13444     template<typename Dispatch = DispatchLoaderDefault>
13445     void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const vk::Buffer> counterBuffers, ArrayProxy<const vk::DeviceSize> counterBufferOffsets, Dispatch const &d = Dispatch() ) const;
13446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13447 
13448     template<typename Dispatch = DispatchLoaderDefault>
13449     void executeCommands( uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
13450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13451     template<typename Dispatch = DispatchLoaderDefault>
13452     void executeCommands( ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
13453 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13454 
13455     template<typename Dispatch = DispatchLoaderDefault>
13456     void fillBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize size, uint32_t data, Dispatch const &d = Dispatch() ) const;
13457 
13458     template<typename Dispatch = DispatchLoaderDefault>
13459     void insertDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
13460 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13461     template<typename Dispatch = DispatchLoaderDefault>
13462     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
13463 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13464 
13465     template<typename Dispatch = DispatchLoaderDefault>
13466     void nextSubpass( vk::SubpassContents contents, Dispatch const &d = Dispatch() ) const;
13467 
13468     template<typename Dispatch = DispatchLoaderDefault>
13469     void nextSubpass2KHR( const vk::SubpassBeginInfoKHR* pSubpassBeginInfo, const vk::SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const;
13470 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13471     template<typename Dispatch = DispatchLoaderDefault>
13472     void nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const;
13473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13474 
13475     template<typename Dispatch = DispatchLoaderDefault>
13476     void pipelineBarrier( vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, vk::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const vk::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const vk::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const vk::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
13477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13478     template<typename Dispatch = DispatchLoaderDefault>
13479     void pipelineBarrier( vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, vk::DependencyFlags dependencyFlags, ArrayProxy<const vk::MemoryBarrier> memoryBarriers, ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
13480 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13481 
13482     template<typename Dispatch = DispatchLoaderDefault>
13483     void processCommandsNVX( const vk::CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d = Dispatch() ) const;
13484 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13485     template<typename Dispatch = DispatchLoaderDefault>
13486     void processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d = Dispatch() ) const;
13487 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13488 
13489     template<typename Dispatch = DispatchLoaderDefault>
13490     void pushConstants( vk::PipelineLayout layout, vk::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d = Dispatch() ) const;
13491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13492     template<typename T, typename Dispatch = DispatchLoaderDefault>
13493     void pushConstants( vk::PipelineLayout layout, vk::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d = Dispatch() ) const;
13494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13495 
13496     template<typename Dispatch = DispatchLoaderDefault>
13497     void pushDescriptorSetKHR( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const vk::WriteDescriptorSet* pDescriptorWrites, Dispatch const &d = Dispatch() ) const;
13498 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13499     template<typename Dispatch = DispatchLoaderDefault>
13500     void pushDescriptorSetKHR( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t set, ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites, Dispatch const &d = Dispatch() ) const;
13501 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13502 
13503     template<typename Dispatch = DispatchLoaderDefault>
13504     void pushDescriptorSetWithTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, vk::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d = Dispatch() ) const;
13505 
13506     template<typename Dispatch = DispatchLoaderDefault>
13507     void reserveSpaceForCommandsNVX( const vk::CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d = Dispatch() ) const;
13508 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13509     template<typename Dispatch = DispatchLoaderDefault>
13510     void reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d = Dispatch() ) const;
13511 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13512 
13513     template<typename Dispatch = DispatchLoaderDefault>
13514     void resetEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d = Dispatch() ) const;
13515 
13516     template<typename Dispatch = DispatchLoaderDefault>
13517     void resetQueryPool( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = Dispatch() ) const;
13518 
13519     template<typename Dispatch = DispatchLoaderDefault>
13520     void resolveImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageResolve* pRegions, Dispatch const &d = Dispatch() ) const;
13521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13522     template<typename Dispatch = DispatchLoaderDefault>
13523     void resolveImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageResolve> regions, Dispatch const &d = Dispatch() ) const;
13524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13525 
13526     template<typename Dispatch = DispatchLoaderDefault>
13527     void setBlendConstants( const float blendConstants[4], Dispatch const &d = Dispatch() ) const;
13528 
13529     template<typename Dispatch = DispatchLoaderDefault>
13530     void setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d = Dispatch() ) const;
13531 
13532     template<typename Dispatch = DispatchLoaderDefault>
13533     void setCoarseSampleOrderNV( vk::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d = Dispatch() ) const;
13534 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13535     template<typename Dispatch = DispatchLoaderDefault>
13536     void setCoarseSampleOrderNV( vk::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const vk::CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d = Dispatch() ) const;
13537 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13538 
13539     template<typename Dispatch = DispatchLoaderDefault>
13540     void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d = Dispatch() ) const;
13541 
13542     template<typename Dispatch = DispatchLoaderDefault>
13543     void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d = Dispatch() ) const;
13544 
13545     template<typename Dispatch = DispatchLoaderDefault>
13546     void setDeviceMask( uint32_t deviceMask, Dispatch const &d = Dispatch() ) const;
13547 
13548     template<typename Dispatch = DispatchLoaderDefault>
13549     void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d = Dispatch() ) const;
13550 
13551     template<typename Dispatch = DispatchLoaderDefault>
13552     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const vk::Rect2D* pDiscardRectangles, Dispatch const &d = Dispatch() ) const;
13553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13554     template<typename Dispatch = DispatchLoaderDefault>
13555     void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const vk::Rect2D> discardRectangles, Dispatch const &d = Dispatch() ) const;
13556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13557 
13558     template<typename Dispatch = DispatchLoaderDefault>
13559     void setEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d = Dispatch() ) const;
13560 
13561     template<typename Dispatch = DispatchLoaderDefault>
13562     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const vk::Rect2D* pExclusiveScissors, Dispatch const &d = Dispatch() ) const;
13563 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13564     template<typename Dispatch = DispatchLoaderDefault>
13565     void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const vk::Rect2D> exclusiveScissors, Dispatch const &d = Dispatch() ) const;
13566 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13567 
13568     template<typename Dispatch = DispatchLoaderDefault>
13569     void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d = Dispatch() ) const;
13570 
13571     template<typename Dispatch = DispatchLoaderDefault>
13572     void setLineWidth( float lineWidth, Dispatch const &d = Dispatch() ) const;
13573 
13574     template<typename Dispatch = DispatchLoaderDefault>
13575     Result setPerformanceMarkerINTEL( const vk::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
13576 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13577     template<typename Dispatch = DispatchLoaderDefault>
13578     ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d = Dispatch() ) const;
13579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13580 
13581     template<typename Dispatch = DispatchLoaderDefault>
13582     Result setPerformanceOverrideINTEL( const vk::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d = Dispatch() ) const;
13583 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13584     template<typename Dispatch = DispatchLoaderDefault>
13585     ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d = Dispatch() ) const;
13586 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13587 
13588     template<typename Dispatch = DispatchLoaderDefault>
13589     Result setPerformanceStreamMarkerINTEL( const vk::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
13590 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13591     template<typename Dispatch = DispatchLoaderDefault>
13592     ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d = Dispatch() ) const;
13593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13594 
13595     template<typename Dispatch = DispatchLoaderDefault>
13596     void setSampleLocationsEXT( const vk::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d = Dispatch() ) const;
13597 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13598     template<typename Dispatch = DispatchLoaderDefault>
13599     void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d = Dispatch() ) const;
13600 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13601 
13602     template<typename Dispatch = DispatchLoaderDefault>
13603     void setScissor( uint32_t firstScissor, uint32_t scissorCount, const vk::Rect2D* pScissors, Dispatch const &d = Dispatch() ) const;
13604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13605     template<typename Dispatch = DispatchLoaderDefault>
13606     void setScissor( uint32_t firstScissor, ArrayProxy<const vk::Rect2D> scissors, Dispatch const &d = Dispatch() ) const;
13607 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13608 
13609     template<typename Dispatch = DispatchLoaderDefault>
13610     void setStencilCompareMask( vk::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d = Dispatch() ) const;
13611 
13612     template<typename Dispatch = DispatchLoaderDefault>
13613     void setStencilReference( vk::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d = Dispatch() ) const;
13614 
13615     template<typename Dispatch = DispatchLoaderDefault>
13616     void setStencilWriteMask( vk::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d = Dispatch() ) const;
13617 
13618     template<typename Dispatch = DispatchLoaderDefault>
13619     void setViewport( uint32_t firstViewport, uint32_t viewportCount, const vk::Viewport* pViewports, Dispatch const &d = Dispatch() ) const;
13620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13621     template<typename Dispatch = DispatchLoaderDefault>
13622     void setViewport( uint32_t firstViewport, ArrayProxy<const vk::Viewport> viewports, Dispatch const &d = Dispatch() ) const;
13623 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13624 
13625     template<typename Dispatch = DispatchLoaderDefault>
13626     void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const vk::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d = Dispatch() ) const;
13627 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13628     template<typename Dispatch = DispatchLoaderDefault>
13629     void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const vk::ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d = Dispatch() ) const;
13630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13631 
13632     template<typename Dispatch = DispatchLoaderDefault>
13633     void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const vk::ViewportWScalingNV* pViewportWScalings, Dispatch const &d = Dispatch() ) const;
13634 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13635     template<typename Dispatch = DispatchLoaderDefault>
13636     void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const vk::ViewportWScalingNV> viewportWScalings, Dispatch const &d = Dispatch() ) const;
13637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13638 
13639     template<typename Dispatch = DispatchLoaderDefault>
13640     void traceRaysNV( vk::Buffer raygenShaderBindingTableBuffer, vk::DeviceSize raygenShaderBindingOffset, vk::Buffer missShaderBindingTableBuffer, vk::DeviceSize missShaderBindingOffset, vk::DeviceSize missShaderBindingStride, vk::Buffer hitShaderBindingTableBuffer, vk::DeviceSize hitShaderBindingOffset, vk::DeviceSize hitShaderBindingStride, vk::Buffer callableShaderBindingTableBuffer, vk::DeviceSize callableShaderBindingOffset, vk::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d = Dispatch() ) const;
13641 
13642     template<typename Dispatch = DispatchLoaderDefault>
13643     void updateBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize dataSize, const void* pData, Dispatch const &d = Dispatch() ) const;
13644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13645     template<typename T, typename Dispatch = DispatchLoaderDefault>
13646     void updateBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d = Dispatch() ) const;
13647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13648 
13649     template<typename Dispatch = DispatchLoaderDefault>
13650     void waitEvents( uint32_t eventCount, const vk::Event* pEvents, vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const vk::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const vk::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const vk::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
13651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13652     template<typename Dispatch = DispatchLoaderDefault>
13653     void waitEvents( ArrayProxy<const vk::Event> events, vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, ArrayProxy<const vk::MemoryBarrier> memoryBarriers, ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
13654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13655 
13656     template<typename Dispatch = DispatchLoaderDefault>
13657     void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const vk::AccelerationStructureNV* pAccelerationStructures, vk::QueryType queryType, vk::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = Dispatch() ) const;
13658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13659     template<typename Dispatch = DispatchLoaderDefault>
13660     void writeAccelerationStructuresPropertiesNV( ArrayProxy<const vk::AccelerationStructureNV> accelerationStructures, vk::QueryType queryType, vk::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = Dispatch() ) const;
13661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13662 
13663     template<typename Dispatch = DispatchLoaderDefault>
13664     void writeBufferMarkerAMD( vk::PipelineStageFlagBits pipelineStage, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, uint32_t marker, Dispatch const &d = Dispatch() ) const;
13665 
13666     template<typename Dispatch = DispatchLoaderDefault>
13667     void writeTimestamp( vk::PipelineStageFlagBits pipelineStage, vk::QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const;
13668 
13669 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
13670     template<typename Dispatch = DispatchLoaderDefault>
13671     Result end(Dispatch const &d = Dispatch() ) const;
13672 #else
13673     template<typename Dispatch = DispatchLoaderDefault>
13674     ResultValueType<void>::type end(Dispatch const &d = Dispatch() ) const;
13675 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13676 
13677 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
13678     template<typename Dispatch = DispatchLoaderDefault>
13679     Result reset( vk::CommandBufferResetFlags flags, Dispatch const &d = Dispatch() ) const;
13680 #else
13681     template<typename Dispatch = DispatchLoaderDefault>
13682     ResultValueType<void>::type reset( vk::CommandBufferResetFlags flags, Dispatch const &d = Dispatch() ) const;
13683 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
13684 
operator VkCommandBuffer() const13685     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const
13686     {
13687       return m_commandBuffer;
13688     }
13689 
operator bool() const13690     explicit operator bool() const
13691     {
13692       return m_commandBuffer != VK_NULL_HANDLE;
13693     }
13694 
operator !() const13695     bool operator!() const
13696     {
13697       return m_commandBuffer == VK_NULL_HANDLE;
13698     }
13699 
13700   private:
13701     VkCommandBuffer m_commandBuffer;
13702   };
13703   static_assert( sizeof( CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
13704 
13705   template <>
13706   struct cpp_type<ObjectType::eCommandBuffer>
13707   {
13708     using type = CommandBuffer;
13709   };
13710 
13711   class DeviceMemory
13712   {
13713   public:
13714     using CType = VkDeviceMemory;
13715 
13716     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDeviceMemory;
13717 
13718   public:
DeviceMemory()13719     VULKAN_HPP_CONSTEXPR DeviceMemory()
13720       : m_deviceMemory(VK_NULL_HANDLE)
13721     {}
13722 
DeviceMemory(std::nullptr_t)13723     VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t )
13724       : m_deviceMemory(VK_NULL_HANDLE)
13725     {}
13726 
DeviceMemory(VkDeviceMemory deviceMemory)13727     VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory )
13728       : m_deviceMemory( deviceMemory )
13729     {}
13730 
13731 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDeviceMemory deviceMemory)13732     DeviceMemory & operator=(VkDeviceMemory deviceMemory)
13733     {
13734       m_deviceMemory = deviceMemory;
13735       return *this;
13736     }
13737 #endif
13738 
operator =(std::nullptr_t)13739     DeviceMemory & operator=( std::nullptr_t )
13740     {
13741       m_deviceMemory = VK_NULL_HANDLE;
13742       return *this;
13743     }
13744 
operator ==(DeviceMemory const & rhs) const13745     bool operator==( DeviceMemory const & rhs ) const
13746     {
13747       return m_deviceMemory == rhs.m_deviceMemory;
13748     }
13749 
operator !=(DeviceMemory const & rhs) const13750     bool operator!=(DeviceMemory const & rhs ) const
13751     {
13752       return m_deviceMemory != rhs.m_deviceMemory;
13753     }
13754 
operator <(DeviceMemory const & rhs) const13755     bool operator<(DeviceMemory const & rhs ) const
13756     {
13757       return m_deviceMemory < rhs.m_deviceMemory;
13758     }
13759 
operator VkDeviceMemory() const13760     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const
13761     {
13762       return m_deviceMemory;
13763     }
13764 
operator bool() const13765     explicit operator bool() const
13766     {
13767       return m_deviceMemory != VK_NULL_HANDLE;
13768     }
13769 
operator !() const13770     bool operator!() const
13771     {
13772       return m_deviceMemory == VK_NULL_HANDLE;
13773     }
13774 
13775   private:
13776     VkDeviceMemory m_deviceMemory;
13777   };
13778   static_assert( sizeof( DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
13779 
13780   template <>
13781   struct cpp_type<ObjectType::eDeviceMemory>
13782   {
13783     using type = DeviceMemory;
13784   };
13785 
13786   class BufferView
13787   {
13788   public:
13789     using CType = VkBufferView;
13790 
13791     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBufferView;
13792 
13793   public:
BufferView()13794     VULKAN_HPP_CONSTEXPR BufferView()
13795       : m_bufferView(VK_NULL_HANDLE)
13796     {}
13797 
BufferView(std::nullptr_t)13798     VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t )
13799       : m_bufferView(VK_NULL_HANDLE)
13800     {}
13801 
BufferView(VkBufferView bufferView)13802     VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView )
13803       : m_bufferView( bufferView )
13804     {}
13805 
13806 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkBufferView bufferView)13807     BufferView & operator=(VkBufferView bufferView)
13808     {
13809       m_bufferView = bufferView;
13810       return *this;
13811     }
13812 #endif
13813 
operator =(std::nullptr_t)13814     BufferView & operator=( std::nullptr_t )
13815     {
13816       m_bufferView = VK_NULL_HANDLE;
13817       return *this;
13818     }
13819 
operator ==(BufferView const & rhs) const13820     bool operator==( BufferView const & rhs ) const
13821     {
13822       return m_bufferView == rhs.m_bufferView;
13823     }
13824 
operator !=(BufferView const & rhs) const13825     bool operator!=(BufferView const & rhs ) const
13826     {
13827       return m_bufferView != rhs.m_bufferView;
13828     }
13829 
operator <(BufferView const & rhs) const13830     bool operator<(BufferView const & rhs ) const
13831     {
13832       return m_bufferView < rhs.m_bufferView;
13833     }
13834 
operator VkBufferView() const13835     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const
13836     {
13837       return m_bufferView;
13838     }
13839 
operator bool() const13840     explicit operator bool() const
13841     {
13842       return m_bufferView != VK_NULL_HANDLE;
13843     }
13844 
operator !() const13845     bool operator!() const
13846     {
13847       return m_bufferView == VK_NULL_HANDLE;
13848     }
13849 
13850   private:
13851     VkBufferView m_bufferView;
13852   };
13853   static_assert( sizeof( BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
13854 
13855   template <>
13856   struct cpp_type<ObjectType::eBufferView>
13857   {
13858     using type = BufferView;
13859   };
13860 
13861   class CommandPool
13862   {
13863   public:
13864     using CType = VkCommandPool;
13865 
13866     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandPool;
13867 
13868   public:
CommandPool()13869     VULKAN_HPP_CONSTEXPR CommandPool()
13870       : m_commandPool(VK_NULL_HANDLE)
13871     {}
13872 
CommandPool(std::nullptr_t)13873     VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t )
13874       : m_commandPool(VK_NULL_HANDLE)
13875     {}
13876 
CommandPool(VkCommandPool commandPool)13877     VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool )
13878       : m_commandPool( commandPool )
13879     {}
13880 
13881 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkCommandPool commandPool)13882     CommandPool & operator=(VkCommandPool commandPool)
13883     {
13884       m_commandPool = commandPool;
13885       return *this;
13886     }
13887 #endif
13888 
operator =(std::nullptr_t)13889     CommandPool & operator=( std::nullptr_t )
13890     {
13891       m_commandPool = VK_NULL_HANDLE;
13892       return *this;
13893     }
13894 
operator ==(CommandPool const & rhs) const13895     bool operator==( CommandPool const & rhs ) const
13896     {
13897       return m_commandPool == rhs.m_commandPool;
13898     }
13899 
operator !=(CommandPool const & rhs) const13900     bool operator!=(CommandPool const & rhs ) const
13901     {
13902       return m_commandPool != rhs.m_commandPool;
13903     }
13904 
operator <(CommandPool const & rhs) const13905     bool operator<(CommandPool const & rhs ) const
13906     {
13907       return m_commandPool < rhs.m_commandPool;
13908     }
13909 
operator VkCommandPool() const13910     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const
13911     {
13912       return m_commandPool;
13913     }
13914 
operator bool() const13915     explicit operator bool() const
13916     {
13917       return m_commandPool != VK_NULL_HANDLE;
13918     }
13919 
operator !() const13920     bool operator!() const
13921     {
13922       return m_commandPool == VK_NULL_HANDLE;
13923     }
13924 
13925   private:
13926     VkCommandPool m_commandPool;
13927   };
13928   static_assert( sizeof( CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
13929 
13930   template <>
13931   struct cpp_type<ObjectType::eCommandPool>
13932   {
13933     using type = CommandPool;
13934   };
13935 
13936   class PipelineCache
13937   {
13938   public:
13939     using CType = VkPipelineCache;
13940 
13941     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineCache;
13942 
13943   public:
PipelineCache()13944     VULKAN_HPP_CONSTEXPR PipelineCache()
13945       : m_pipelineCache(VK_NULL_HANDLE)
13946     {}
13947 
PipelineCache(std::nullptr_t)13948     VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t )
13949       : m_pipelineCache(VK_NULL_HANDLE)
13950     {}
13951 
PipelineCache(VkPipelineCache pipelineCache)13952     VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache )
13953       : m_pipelineCache( pipelineCache )
13954     {}
13955 
13956 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPipelineCache pipelineCache)13957     PipelineCache & operator=(VkPipelineCache pipelineCache)
13958     {
13959       m_pipelineCache = pipelineCache;
13960       return *this;
13961     }
13962 #endif
13963 
operator =(std::nullptr_t)13964     PipelineCache & operator=( std::nullptr_t )
13965     {
13966       m_pipelineCache = VK_NULL_HANDLE;
13967       return *this;
13968     }
13969 
operator ==(PipelineCache const & rhs) const13970     bool operator==( PipelineCache const & rhs ) const
13971     {
13972       return m_pipelineCache == rhs.m_pipelineCache;
13973     }
13974 
operator !=(PipelineCache const & rhs) const13975     bool operator!=(PipelineCache const & rhs ) const
13976     {
13977       return m_pipelineCache != rhs.m_pipelineCache;
13978     }
13979 
operator <(PipelineCache const & rhs) const13980     bool operator<(PipelineCache const & rhs ) const
13981     {
13982       return m_pipelineCache < rhs.m_pipelineCache;
13983     }
13984 
operator VkPipelineCache() const13985     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const
13986     {
13987       return m_pipelineCache;
13988     }
13989 
operator bool() const13990     explicit operator bool() const
13991     {
13992       return m_pipelineCache != VK_NULL_HANDLE;
13993     }
13994 
operator !() const13995     bool operator!() const
13996     {
13997       return m_pipelineCache == VK_NULL_HANDLE;
13998     }
13999 
14000   private:
14001     VkPipelineCache m_pipelineCache;
14002   };
14003   static_assert( sizeof( PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
14004 
14005   template <>
14006   struct cpp_type<ObjectType::ePipelineCache>
14007   {
14008     using type = PipelineCache;
14009   };
14010 
14011   class DescriptorPool
14012   {
14013   public:
14014     using CType = VkDescriptorPool;
14015 
14016     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorPool;
14017 
14018   public:
DescriptorPool()14019     VULKAN_HPP_CONSTEXPR DescriptorPool()
14020       : m_descriptorPool(VK_NULL_HANDLE)
14021     {}
14022 
DescriptorPool(std::nullptr_t)14023     VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t )
14024       : m_descriptorPool(VK_NULL_HANDLE)
14025     {}
14026 
DescriptorPool(VkDescriptorPool descriptorPool)14027     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool )
14028       : m_descriptorPool( descriptorPool )
14029     {}
14030 
14031 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorPool descriptorPool)14032     DescriptorPool & operator=(VkDescriptorPool descriptorPool)
14033     {
14034       m_descriptorPool = descriptorPool;
14035       return *this;
14036     }
14037 #endif
14038 
operator =(std::nullptr_t)14039     DescriptorPool & operator=( std::nullptr_t )
14040     {
14041       m_descriptorPool = VK_NULL_HANDLE;
14042       return *this;
14043     }
14044 
operator ==(DescriptorPool const & rhs) const14045     bool operator==( DescriptorPool const & rhs ) const
14046     {
14047       return m_descriptorPool == rhs.m_descriptorPool;
14048     }
14049 
operator !=(DescriptorPool const & rhs) const14050     bool operator!=(DescriptorPool const & rhs ) const
14051     {
14052       return m_descriptorPool != rhs.m_descriptorPool;
14053     }
14054 
operator <(DescriptorPool const & rhs) const14055     bool operator<(DescriptorPool const & rhs ) const
14056     {
14057       return m_descriptorPool < rhs.m_descriptorPool;
14058     }
14059 
operator VkDescriptorPool() const14060     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const
14061     {
14062       return m_descriptorPool;
14063     }
14064 
operator bool() const14065     explicit operator bool() const
14066     {
14067       return m_descriptorPool != VK_NULL_HANDLE;
14068     }
14069 
operator !() const14070     bool operator!() const
14071     {
14072       return m_descriptorPool == VK_NULL_HANDLE;
14073     }
14074 
14075   private:
14076     VkDescriptorPool m_descriptorPool;
14077   };
14078   static_assert( sizeof( DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
14079 
14080   template <>
14081   struct cpp_type<ObjectType::eDescriptorPool>
14082   {
14083     using type = DescriptorPool;
14084   };
14085 
14086   class DescriptorSetLayout
14087   {
14088   public:
14089     using CType = VkDescriptorSetLayout;
14090 
14091     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSetLayout;
14092 
14093   public:
DescriptorSetLayout()14094     VULKAN_HPP_CONSTEXPR DescriptorSetLayout()
14095       : m_descriptorSetLayout(VK_NULL_HANDLE)
14096     {}
14097 
DescriptorSetLayout(std::nullptr_t)14098     VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t )
14099       : m_descriptorSetLayout(VK_NULL_HANDLE)
14100     {}
14101 
DescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout)14102     VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout )
14103       : m_descriptorSetLayout( descriptorSetLayout )
14104     {}
14105 
14106 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDescriptorSetLayout descriptorSetLayout)14107     DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout)
14108     {
14109       m_descriptorSetLayout = descriptorSetLayout;
14110       return *this;
14111     }
14112 #endif
14113 
operator =(std::nullptr_t)14114     DescriptorSetLayout & operator=( std::nullptr_t )
14115     {
14116       m_descriptorSetLayout = VK_NULL_HANDLE;
14117       return *this;
14118     }
14119 
operator ==(DescriptorSetLayout const & rhs) const14120     bool operator==( DescriptorSetLayout const & rhs ) const
14121     {
14122       return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
14123     }
14124 
operator !=(DescriptorSetLayout const & rhs) const14125     bool operator!=(DescriptorSetLayout const & rhs ) const
14126     {
14127       return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
14128     }
14129 
operator <(DescriptorSetLayout const & rhs) const14130     bool operator<(DescriptorSetLayout const & rhs ) const
14131     {
14132       return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
14133     }
14134 
operator VkDescriptorSetLayout() const14135     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const
14136     {
14137       return m_descriptorSetLayout;
14138     }
14139 
operator bool() const14140     explicit operator bool() const
14141     {
14142       return m_descriptorSetLayout != VK_NULL_HANDLE;
14143     }
14144 
operator !() const14145     bool operator!() const
14146     {
14147       return m_descriptorSetLayout == VK_NULL_HANDLE;
14148     }
14149 
14150   private:
14151     VkDescriptorSetLayout m_descriptorSetLayout;
14152   };
14153   static_assert( sizeof( DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
14154 
14155   template <>
14156   struct cpp_type<ObjectType::eDescriptorSetLayout>
14157   {
14158     using type = DescriptorSetLayout;
14159   };
14160 
14161   class Framebuffer
14162   {
14163   public:
14164     using CType = VkFramebuffer;
14165 
14166     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFramebuffer;
14167 
14168   public:
Framebuffer()14169     VULKAN_HPP_CONSTEXPR Framebuffer()
14170       : m_framebuffer(VK_NULL_HANDLE)
14171     {}
14172 
Framebuffer(std::nullptr_t)14173     VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t )
14174       : m_framebuffer(VK_NULL_HANDLE)
14175     {}
14176 
Framebuffer(VkFramebuffer framebuffer)14177     VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer )
14178       : m_framebuffer( framebuffer )
14179     {}
14180 
14181 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkFramebuffer framebuffer)14182     Framebuffer & operator=(VkFramebuffer framebuffer)
14183     {
14184       m_framebuffer = framebuffer;
14185       return *this;
14186     }
14187 #endif
14188 
operator =(std::nullptr_t)14189     Framebuffer & operator=( std::nullptr_t )
14190     {
14191       m_framebuffer = VK_NULL_HANDLE;
14192       return *this;
14193     }
14194 
operator ==(Framebuffer const & rhs) const14195     bool operator==( Framebuffer const & rhs ) const
14196     {
14197       return m_framebuffer == rhs.m_framebuffer;
14198     }
14199 
operator !=(Framebuffer const & rhs) const14200     bool operator!=(Framebuffer const & rhs ) const
14201     {
14202       return m_framebuffer != rhs.m_framebuffer;
14203     }
14204 
operator <(Framebuffer const & rhs) const14205     bool operator<(Framebuffer const & rhs ) const
14206     {
14207       return m_framebuffer < rhs.m_framebuffer;
14208     }
14209 
operator VkFramebuffer() const14210     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const
14211     {
14212       return m_framebuffer;
14213     }
14214 
operator bool() const14215     explicit operator bool() const
14216     {
14217       return m_framebuffer != VK_NULL_HANDLE;
14218     }
14219 
operator !() const14220     bool operator!() const
14221     {
14222       return m_framebuffer == VK_NULL_HANDLE;
14223     }
14224 
14225   private:
14226     VkFramebuffer m_framebuffer;
14227   };
14228   static_assert( sizeof( Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
14229 
14230   template <>
14231   struct cpp_type<ObjectType::eFramebuffer>
14232   {
14233     using type = Framebuffer;
14234   };
14235 
14236   class IndirectCommandsLayoutNVX
14237   {
14238   public:
14239     using CType = VkIndirectCommandsLayoutNVX;
14240 
14241     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eIndirectCommandsLayoutNVX;
14242 
14243   public:
IndirectCommandsLayoutNVX()14244     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX()
14245       : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
14246     {}
14247 
IndirectCommandsLayoutNVX(std::nullptr_t)14248     VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX( std::nullptr_t )
14249       : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
14250     {}
14251 
IndirectCommandsLayoutNVX(VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX)14252     VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNVX( VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX )
14253       : m_indirectCommandsLayoutNVX( indirectCommandsLayoutNVX )
14254     {}
14255 
14256 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX)14257     IndirectCommandsLayoutNVX & operator=(VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX)
14258     {
14259       m_indirectCommandsLayoutNVX = indirectCommandsLayoutNVX;
14260       return *this;
14261     }
14262 #endif
14263 
operator =(std::nullptr_t)14264     IndirectCommandsLayoutNVX & operator=( std::nullptr_t )
14265     {
14266       m_indirectCommandsLayoutNVX = VK_NULL_HANDLE;
14267       return *this;
14268     }
14269 
operator ==(IndirectCommandsLayoutNVX const & rhs) const14270     bool operator==( IndirectCommandsLayoutNVX const & rhs ) const
14271     {
14272       return m_indirectCommandsLayoutNVX == rhs.m_indirectCommandsLayoutNVX;
14273     }
14274 
operator !=(IndirectCommandsLayoutNVX const & rhs) const14275     bool operator!=(IndirectCommandsLayoutNVX const & rhs ) const
14276     {
14277       return m_indirectCommandsLayoutNVX != rhs.m_indirectCommandsLayoutNVX;
14278     }
14279 
operator <(IndirectCommandsLayoutNVX const & rhs) const14280     bool operator<(IndirectCommandsLayoutNVX const & rhs ) const
14281     {
14282       return m_indirectCommandsLayoutNVX < rhs.m_indirectCommandsLayoutNVX;
14283     }
14284 
operator VkIndirectCommandsLayoutNVX() const14285     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNVX() const
14286     {
14287       return m_indirectCommandsLayoutNVX;
14288     }
14289 
operator bool() const14290     explicit operator bool() const
14291     {
14292       return m_indirectCommandsLayoutNVX != VK_NULL_HANDLE;
14293     }
14294 
operator !() const14295     bool operator!() const
14296     {
14297       return m_indirectCommandsLayoutNVX == VK_NULL_HANDLE;
14298     }
14299 
14300   private:
14301     VkIndirectCommandsLayoutNVX m_indirectCommandsLayoutNVX;
14302   };
14303   static_assert( sizeof( IndirectCommandsLayoutNVX ) == sizeof( VkIndirectCommandsLayoutNVX ), "handle and wrapper have different size!" );
14304 
14305   template <>
14306   struct cpp_type<ObjectType::eIndirectCommandsLayoutNVX>
14307   {
14308     using type = IndirectCommandsLayoutNVX;
14309   };
14310 
14311   class ObjectTableNVX
14312   {
14313   public:
14314     using CType = VkObjectTableNVX;
14315 
14316     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eObjectTableNVX;
14317 
14318   public:
ObjectTableNVX()14319     VULKAN_HPP_CONSTEXPR ObjectTableNVX()
14320       : m_objectTableNVX(VK_NULL_HANDLE)
14321     {}
14322 
ObjectTableNVX(std::nullptr_t)14323     VULKAN_HPP_CONSTEXPR ObjectTableNVX( std::nullptr_t )
14324       : m_objectTableNVX(VK_NULL_HANDLE)
14325     {}
14326 
ObjectTableNVX(VkObjectTableNVX objectTableNVX)14327     VULKAN_HPP_TYPESAFE_EXPLICIT ObjectTableNVX( VkObjectTableNVX objectTableNVX )
14328       : m_objectTableNVX( objectTableNVX )
14329     {}
14330 
14331 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkObjectTableNVX objectTableNVX)14332     ObjectTableNVX & operator=(VkObjectTableNVX objectTableNVX)
14333     {
14334       m_objectTableNVX = objectTableNVX;
14335       return *this;
14336     }
14337 #endif
14338 
operator =(std::nullptr_t)14339     ObjectTableNVX & operator=( std::nullptr_t )
14340     {
14341       m_objectTableNVX = VK_NULL_HANDLE;
14342       return *this;
14343     }
14344 
operator ==(ObjectTableNVX const & rhs) const14345     bool operator==( ObjectTableNVX const & rhs ) const
14346     {
14347       return m_objectTableNVX == rhs.m_objectTableNVX;
14348     }
14349 
operator !=(ObjectTableNVX const & rhs) const14350     bool operator!=(ObjectTableNVX const & rhs ) const
14351     {
14352       return m_objectTableNVX != rhs.m_objectTableNVX;
14353     }
14354 
operator <(ObjectTableNVX const & rhs) const14355     bool operator<(ObjectTableNVX const & rhs ) const
14356     {
14357       return m_objectTableNVX < rhs.m_objectTableNVX;
14358     }
14359 
operator VkObjectTableNVX() const14360     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkObjectTableNVX() const
14361     {
14362       return m_objectTableNVX;
14363     }
14364 
operator bool() const14365     explicit operator bool() const
14366     {
14367       return m_objectTableNVX != VK_NULL_HANDLE;
14368     }
14369 
operator !() const14370     bool operator!() const
14371     {
14372       return m_objectTableNVX == VK_NULL_HANDLE;
14373     }
14374 
14375   private:
14376     VkObjectTableNVX m_objectTableNVX;
14377   };
14378   static_assert( sizeof( ObjectTableNVX ) == sizeof( VkObjectTableNVX ), "handle and wrapper have different size!" );
14379 
14380   template <>
14381   struct cpp_type<ObjectType::eObjectTableNVX>
14382   {
14383     using type = ObjectTableNVX;
14384   };
14385 
14386   class RenderPass
14387   {
14388   public:
14389     using CType = VkRenderPass;
14390 
14391     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eRenderPass;
14392 
14393   public:
RenderPass()14394     VULKAN_HPP_CONSTEXPR RenderPass()
14395       : m_renderPass(VK_NULL_HANDLE)
14396     {}
14397 
RenderPass(std::nullptr_t)14398     VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t )
14399       : m_renderPass(VK_NULL_HANDLE)
14400     {}
14401 
RenderPass(VkRenderPass renderPass)14402     VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass )
14403       : m_renderPass( renderPass )
14404     {}
14405 
14406 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkRenderPass renderPass)14407     RenderPass & operator=(VkRenderPass renderPass)
14408     {
14409       m_renderPass = renderPass;
14410       return *this;
14411     }
14412 #endif
14413 
operator =(std::nullptr_t)14414     RenderPass & operator=( std::nullptr_t )
14415     {
14416       m_renderPass = VK_NULL_HANDLE;
14417       return *this;
14418     }
14419 
operator ==(RenderPass const & rhs) const14420     bool operator==( RenderPass const & rhs ) const
14421     {
14422       return m_renderPass == rhs.m_renderPass;
14423     }
14424 
operator !=(RenderPass const & rhs) const14425     bool operator!=(RenderPass const & rhs ) const
14426     {
14427       return m_renderPass != rhs.m_renderPass;
14428     }
14429 
operator <(RenderPass const & rhs) const14430     bool operator<(RenderPass const & rhs ) const
14431     {
14432       return m_renderPass < rhs.m_renderPass;
14433     }
14434 
operator VkRenderPass() const14435     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const
14436     {
14437       return m_renderPass;
14438     }
14439 
operator bool() const14440     explicit operator bool() const
14441     {
14442       return m_renderPass != VK_NULL_HANDLE;
14443     }
14444 
operator !() const14445     bool operator!() const
14446     {
14447       return m_renderPass == VK_NULL_HANDLE;
14448     }
14449 
14450   private:
14451     VkRenderPass m_renderPass;
14452   };
14453   static_assert( sizeof( RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
14454 
14455   template <>
14456   struct cpp_type<ObjectType::eRenderPass>
14457   {
14458     using type = RenderPass;
14459   };
14460 
14461   class Sampler
14462   {
14463   public:
14464     using CType = VkSampler;
14465 
14466     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSampler;
14467 
14468   public:
Sampler()14469     VULKAN_HPP_CONSTEXPR Sampler()
14470       : m_sampler(VK_NULL_HANDLE)
14471     {}
14472 
Sampler(std::nullptr_t)14473     VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t )
14474       : m_sampler(VK_NULL_HANDLE)
14475     {}
14476 
Sampler(VkSampler sampler)14477     VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler )
14478       : m_sampler( sampler )
14479     {}
14480 
14481 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSampler sampler)14482     Sampler & operator=(VkSampler sampler)
14483     {
14484       m_sampler = sampler;
14485       return *this;
14486     }
14487 #endif
14488 
operator =(std::nullptr_t)14489     Sampler & operator=( std::nullptr_t )
14490     {
14491       m_sampler = VK_NULL_HANDLE;
14492       return *this;
14493     }
14494 
operator ==(Sampler const & rhs) const14495     bool operator==( Sampler const & rhs ) const
14496     {
14497       return m_sampler == rhs.m_sampler;
14498     }
14499 
operator !=(Sampler const & rhs) const14500     bool operator!=(Sampler const & rhs ) const
14501     {
14502       return m_sampler != rhs.m_sampler;
14503     }
14504 
operator <(Sampler const & rhs) const14505     bool operator<(Sampler const & rhs ) const
14506     {
14507       return m_sampler < rhs.m_sampler;
14508     }
14509 
operator VkSampler() const14510     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const
14511     {
14512       return m_sampler;
14513     }
14514 
operator bool() const14515     explicit operator bool() const
14516     {
14517       return m_sampler != VK_NULL_HANDLE;
14518     }
14519 
operator !() const14520     bool operator!() const
14521     {
14522       return m_sampler == VK_NULL_HANDLE;
14523     }
14524 
14525   private:
14526     VkSampler m_sampler;
14527   };
14528   static_assert( sizeof( Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
14529 
14530   template <>
14531   struct cpp_type<ObjectType::eSampler>
14532   {
14533     using type = Sampler;
14534   };
14535 
14536   class SamplerYcbcrConversion
14537   {
14538   public:
14539     using CType = VkSamplerYcbcrConversion;
14540 
14541     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSamplerYcbcrConversion;
14542 
14543   public:
SamplerYcbcrConversion()14544     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion()
14545       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
14546     {}
14547 
SamplerYcbcrConversion(std::nullptr_t)14548     VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t )
14549       : m_samplerYcbcrConversion(VK_NULL_HANDLE)
14550     {}
14551 
SamplerYcbcrConversion(VkSamplerYcbcrConversion samplerYcbcrConversion)14552     VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion )
14553       : m_samplerYcbcrConversion( samplerYcbcrConversion )
14554     {}
14555 
14556 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkSamplerYcbcrConversion samplerYcbcrConversion)14557     SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion)
14558     {
14559       m_samplerYcbcrConversion = samplerYcbcrConversion;
14560       return *this;
14561     }
14562 #endif
14563 
operator =(std::nullptr_t)14564     SamplerYcbcrConversion & operator=( std::nullptr_t )
14565     {
14566       m_samplerYcbcrConversion = VK_NULL_HANDLE;
14567       return *this;
14568     }
14569 
operator ==(SamplerYcbcrConversion const & rhs) const14570     bool operator==( SamplerYcbcrConversion const & rhs ) const
14571     {
14572       return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
14573     }
14574 
operator !=(SamplerYcbcrConversion const & rhs) const14575     bool operator!=(SamplerYcbcrConversion const & rhs ) const
14576     {
14577       return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
14578     }
14579 
operator <(SamplerYcbcrConversion const & rhs) const14580     bool operator<(SamplerYcbcrConversion const & rhs ) const
14581     {
14582       return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
14583     }
14584 
operator VkSamplerYcbcrConversion() const14585     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const
14586     {
14587       return m_samplerYcbcrConversion;
14588     }
14589 
operator bool() const14590     explicit operator bool() const
14591     {
14592       return m_samplerYcbcrConversion != VK_NULL_HANDLE;
14593     }
14594 
operator !() const14595     bool operator!() const
14596     {
14597       return m_samplerYcbcrConversion == VK_NULL_HANDLE;
14598     }
14599 
14600   private:
14601     VkSamplerYcbcrConversion m_samplerYcbcrConversion;
14602   };
14603   static_assert( sizeof( SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
14604 
14605   template <>
14606   struct cpp_type<ObjectType::eSamplerYcbcrConversion>
14607   {
14608     using type = SamplerYcbcrConversion;
14609   };
14610   using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
14611 
14612   class ShaderModule
14613   {
14614   public:
14615     using CType = VkShaderModule;
14616 
14617     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eShaderModule;
14618 
14619   public:
ShaderModule()14620     VULKAN_HPP_CONSTEXPR ShaderModule()
14621       : m_shaderModule(VK_NULL_HANDLE)
14622     {}
14623 
ShaderModule(std::nullptr_t)14624     VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t )
14625       : m_shaderModule(VK_NULL_HANDLE)
14626     {}
14627 
ShaderModule(VkShaderModule shaderModule)14628     VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule )
14629       : m_shaderModule( shaderModule )
14630     {}
14631 
14632 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkShaderModule shaderModule)14633     ShaderModule & operator=(VkShaderModule shaderModule)
14634     {
14635       m_shaderModule = shaderModule;
14636       return *this;
14637     }
14638 #endif
14639 
operator =(std::nullptr_t)14640     ShaderModule & operator=( std::nullptr_t )
14641     {
14642       m_shaderModule = VK_NULL_HANDLE;
14643       return *this;
14644     }
14645 
operator ==(ShaderModule const & rhs) const14646     bool operator==( ShaderModule const & rhs ) const
14647     {
14648       return m_shaderModule == rhs.m_shaderModule;
14649     }
14650 
operator !=(ShaderModule const & rhs) const14651     bool operator!=(ShaderModule const & rhs ) const
14652     {
14653       return m_shaderModule != rhs.m_shaderModule;
14654     }
14655 
operator <(ShaderModule const & rhs) const14656     bool operator<(ShaderModule const & rhs ) const
14657     {
14658       return m_shaderModule < rhs.m_shaderModule;
14659     }
14660 
operator VkShaderModule() const14661     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const
14662     {
14663       return m_shaderModule;
14664     }
14665 
operator bool() const14666     explicit operator bool() const
14667     {
14668       return m_shaderModule != VK_NULL_HANDLE;
14669     }
14670 
operator !() const14671     bool operator!() const
14672     {
14673       return m_shaderModule == VK_NULL_HANDLE;
14674     }
14675 
14676   private:
14677     VkShaderModule m_shaderModule;
14678   };
14679   static_assert( sizeof( ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
14680 
14681   template <>
14682   struct cpp_type<ObjectType::eShaderModule>
14683   {
14684     using type = ShaderModule;
14685   };
14686 
14687   class ValidationCacheEXT
14688   {
14689   public:
14690     using CType = VkValidationCacheEXT;
14691 
14692     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eValidationCacheEXT;
14693 
14694   public:
ValidationCacheEXT()14695     VULKAN_HPP_CONSTEXPR ValidationCacheEXT()
14696       : m_validationCacheEXT(VK_NULL_HANDLE)
14697     {}
14698 
ValidationCacheEXT(std::nullptr_t)14699     VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t )
14700       : m_validationCacheEXT(VK_NULL_HANDLE)
14701     {}
14702 
ValidationCacheEXT(VkValidationCacheEXT validationCacheEXT)14703     VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT )
14704       : m_validationCacheEXT( validationCacheEXT )
14705     {}
14706 
14707 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkValidationCacheEXT validationCacheEXT)14708     ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT)
14709     {
14710       m_validationCacheEXT = validationCacheEXT;
14711       return *this;
14712     }
14713 #endif
14714 
operator =(std::nullptr_t)14715     ValidationCacheEXT & operator=( std::nullptr_t )
14716     {
14717       m_validationCacheEXT = VK_NULL_HANDLE;
14718       return *this;
14719     }
14720 
operator ==(ValidationCacheEXT const & rhs) const14721     bool operator==( ValidationCacheEXT const & rhs ) const
14722     {
14723       return m_validationCacheEXT == rhs.m_validationCacheEXT;
14724     }
14725 
operator !=(ValidationCacheEXT const & rhs) const14726     bool operator!=(ValidationCacheEXT const & rhs ) const
14727     {
14728       return m_validationCacheEXT != rhs.m_validationCacheEXT;
14729     }
14730 
operator <(ValidationCacheEXT const & rhs) const14731     bool operator<(ValidationCacheEXT const & rhs ) const
14732     {
14733       return m_validationCacheEXT < rhs.m_validationCacheEXT;
14734     }
14735 
operator VkValidationCacheEXT() const14736     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const
14737     {
14738       return m_validationCacheEXT;
14739     }
14740 
operator bool() const14741     explicit operator bool() const
14742     {
14743       return m_validationCacheEXT != VK_NULL_HANDLE;
14744     }
14745 
operator !() const14746     bool operator!() const
14747     {
14748       return m_validationCacheEXT == VK_NULL_HANDLE;
14749     }
14750 
14751   private:
14752     VkValidationCacheEXT m_validationCacheEXT;
14753   };
14754   static_assert( sizeof( ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
14755 
14756   template <>
14757   struct cpp_type<ObjectType::eValidationCacheEXT>
14758   {
14759     using type = ValidationCacheEXT;
14760   };
14761 
14762   class Queue
14763   {
14764   public:
14765     using CType = VkQueue;
14766 
14767     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueue;
14768 
14769   public:
Queue()14770     VULKAN_HPP_CONSTEXPR Queue()
14771       : m_queue(VK_NULL_HANDLE)
14772     {}
14773 
Queue(std::nullptr_t)14774     VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t )
14775       : m_queue(VK_NULL_HANDLE)
14776     {}
14777 
Queue(VkQueue queue)14778     VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue )
14779       : m_queue( queue )
14780     {}
14781 
14782 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkQueue queue)14783     Queue & operator=(VkQueue queue)
14784     {
14785       m_queue = queue;
14786       return *this;
14787     }
14788 #endif
14789 
operator =(std::nullptr_t)14790     Queue & operator=( std::nullptr_t )
14791     {
14792       m_queue = VK_NULL_HANDLE;
14793       return *this;
14794     }
14795 
operator ==(Queue const & rhs) const14796     bool operator==( Queue const & rhs ) const
14797     {
14798       return m_queue == rhs.m_queue;
14799     }
14800 
operator !=(Queue const & rhs) const14801     bool operator!=(Queue const & rhs ) const
14802     {
14803       return m_queue != rhs.m_queue;
14804     }
14805 
operator <(Queue const & rhs) const14806     bool operator<(Queue const & rhs ) const
14807     {
14808       return m_queue < rhs.m_queue;
14809     }
14810 
14811     template<typename Dispatch = DispatchLoaderDefault>
14812     void getCheckpointDataNV( uint32_t* pCheckpointDataCount, vk::CheckpointDataNV* pCheckpointData, Dispatch const &d = Dispatch() ) const;
14813 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14814     template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = DispatchLoaderDefault>
14815     std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Dispatch const &d = Dispatch() ) const;
14816     template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = DispatchLoaderDefault>
14817     std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
14818 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14819 
14820     template<typename Dispatch = DispatchLoaderDefault>
14821     void beginDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
14822 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14823     template<typename Dispatch = DispatchLoaderDefault>
14824     void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
14825 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14826 
14827     template<typename Dispatch = DispatchLoaderDefault>
14828     Result bindSparse( uint32_t bindInfoCount, const vk::BindSparseInfo* pBindInfo, vk::Fence fence, Dispatch const &d = Dispatch() ) const;
14829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14830     template<typename Dispatch = DispatchLoaderDefault>
14831     ResultValueType<void>::type bindSparse( ArrayProxy<const vk::BindSparseInfo> bindInfo, vk::Fence fence, Dispatch const &d = Dispatch() ) const;
14832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14833 
14834     template<typename Dispatch = DispatchLoaderDefault>
14835     void endDebugUtilsLabelEXT(Dispatch const &d = Dispatch() ) const;
14836 
14837     template<typename Dispatch = DispatchLoaderDefault>
14838     void insertDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
14839 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14840     template<typename Dispatch = DispatchLoaderDefault>
14841     void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
14842 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14843 
14844     template<typename Dispatch = DispatchLoaderDefault>
14845     Result presentKHR( const vk::PresentInfoKHR* pPresentInfo, Dispatch const &d = Dispatch() ) const;
14846 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14847     template<typename Dispatch = DispatchLoaderDefault>
14848     Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d = Dispatch() ) const;
14849 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14850 
14851 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
14852     template<typename Dispatch = DispatchLoaderDefault>
14853     Result setPerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
14854 #else
14855     template<typename Dispatch = DispatchLoaderDefault>
14856     ResultValueType<void>::type setPerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
14857 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14858 
14859     template<typename Dispatch = DispatchLoaderDefault>
14860     Result submit( uint32_t submitCount, const vk::SubmitInfo* pSubmits, vk::Fence fence, Dispatch const &d = Dispatch() ) const;
14861 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14862     template<typename Dispatch = DispatchLoaderDefault>
14863     ResultValueType<void>::type submit( ArrayProxy<const vk::SubmitInfo> submits, vk::Fence fence, Dispatch const &d = Dispatch() ) const;
14864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14865 
14866 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
14867     template<typename Dispatch = DispatchLoaderDefault>
14868     Result waitIdle(Dispatch const &d = Dispatch() ) const;
14869 #else
14870     template<typename Dispatch = DispatchLoaderDefault>
14871     ResultValueType<void>::type waitIdle(Dispatch const &d = Dispatch() ) const;
14872 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
14873 
operator VkQueue() const14874     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const
14875     {
14876       return m_queue;
14877     }
14878 
operator bool() const14879     explicit operator bool() const
14880     {
14881       return m_queue != VK_NULL_HANDLE;
14882     }
14883 
operator !() const14884     bool operator!() const
14885     {
14886       return m_queue == VK_NULL_HANDLE;
14887     }
14888 
14889   private:
14890     VkQueue m_queue;
14891   };
14892   static_assert( sizeof( Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
14893 
14894   template <>
14895   struct cpp_type<ObjectType::eQueue>
14896   {
14897     using type = Queue;
14898   };
14899 
14900 #ifndef VULKAN_HPP_NO_SMART_HANDLE
14901   class Device;
14902   template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14903   using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, DispatchLoaderDefault>;
14904   template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14905   using UniqueBuffer = UniqueHandle<Buffer, DispatchLoaderDefault>;
14906   template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14907   using UniqueBufferView = UniqueHandle<BufferView, DispatchLoaderDefault>;
14908   template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
14909   using UniqueCommandBuffer = UniqueHandle<CommandBuffer, DispatchLoaderDefault>;
14910   template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14911   using UniqueCommandPool = UniqueHandle<CommandPool, DispatchLoaderDefault>;
14912   template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14913   using UniqueDescriptorPool = UniqueHandle<DescriptorPool, DispatchLoaderDefault>;
14914   template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
14915   using UniqueDescriptorSet = UniqueHandle<DescriptorSet, DispatchLoaderDefault>;
14916   template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14917   using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, DispatchLoaderDefault>;
14918   template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14919   using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, DispatchLoaderDefault>;
14920   template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
14921   using UniqueDeviceMemory = UniqueHandle<DeviceMemory, DispatchLoaderDefault>;
14922   template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14923   using UniqueEvent = UniqueHandle<Event, DispatchLoaderDefault>;
14924   template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14925   using UniqueFence = UniqueHandle<Fence, DispatchLoaderDefault>;
14926   template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14927   using UniqueFramebuffer = UniqueHandle<Framebuffer, DispatchLoaderDefault>;
14928   template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14929   using UniqueImage = UniqueHandle<Image, DispatchLoaderDefault>;
14930   template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14931   using UniqueImageView = UniqueHandle<ImageView, DispatchLoaderDefault>;
14932   template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNVX, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14933   using UniqueIndirectCommandsLayoutNVX = UniqueHandle<IndirectCommandsLayoutNVX, DispatchLoaderDefault>;
14934   template <typename Dispatch> class UniqueHandleTraits<ObjectTableNVX, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14935   using UniqueObjectTableNVX = UniqueHandle<ObjectTableNVX, DispatchLoaderDefault>;
14936   template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14937   using UniquePipeline = UniqueHandle<Pipeline, DispatchLoaderDefault>;
14938   template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14939   using UniquePipelineCache = UniqueHandle<PipelineCache, DispatchLoaderDefault>;
14940   template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14941   using UniquePipelineLayout = UniqueHandle<PipelineLayout, DispatchLoaderDefault>;
14942   template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14943   using UniqueQueryPool = UniqueHandle<QueryPool, DispatchLoaderDefault>;
14944   template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14945   using UniqueRenderPass = UniqueHandle<RenderPass, DispatchLoaderDefault>;
14946   template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14947   using UniqueSampler = UniqueHandle<Sampler, DispatchLoaderDefault>;
14948   template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14949   using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, DispatchLoaderDefault>;
14950   template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14951   using UniqueSemaphore = UniqueHandle<Semaphore, DispatchLoaderDefault>;
14952   template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14953   using UniqueShaderModule = UniqueHandle<ShaderModule, DispatchLoaderDefault>;
14954   template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14955   using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, DispatchLoaderDefault>;
14956   template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
14957   using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, DispatchLoaderDefault>;
14958 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
14959 
14960   class Device
14961   {
14962   public:
14963     using CType = VkDevice;
14964 
14965     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDevice;
14966 
14967   public:
Device()14968     VULKAN_HPP_CONSTEXPR Device()
14969       : m_device(VK_NULL_HANDLE)
14970     {}
14971 
Device(std::nullptr_t)14972     VULKAN_HPP_CONSTEXPR Device( std::nullptr_t )
14973       : m_device(VK_NULL_HANDLE)
14974     {}
14975 
Device(VkDevice device)14976     VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device )
14977       : m_device( device )
14978     {}
14979 
14980 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDevice device)14981     Device & operator=(VkDevice device)
14982     {
14983       m_device = device;
14984       return *this;
14985     }
14986 #endif
14987 
operator =(std::nullptr_t)14988     Device & operator=( std::nullptr_t )
14989     {
14990       m_device = VK_NULL_HANDLE;
14991       return *this;
14992     }
14993 
operator ==(Device const & rhs) const14994     bool operator==( Device const & rhs ) const
14995     {
14996       return m_device == rhs.m_device;
14997     }
14998 
operator !=(Device const & rhs) const14999     bool operator!=(Device const & rhs ) const
15000     {
15001       return m_device != rhs.m_device;
15002     }
15003 
operator <(Device const & rhs) const15004     bool operator<(Device const & rhs ) const
15005     {
15006       return m_device < rhs.m_device;
15007     }
15008 
15009 #ifdef VK_USE_PLATFORM_WIN32_KHR
15010 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15011     template<typename Dispatch = DispatchLoaderDefault>
15012     Result acquireFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
15013 #else
15014     template<typename Dispatch = DispatchLoaderDefault>
15015     ResultValueType<void>::type acquireFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
15016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15017 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15018 
15019     template<typename Dispatch = DispatchLoaderDefault>
15020     Result acquireNextImage2KHR( const vk::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d = Dispatch() ) const;
15021 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15022     template<typename Dispatch = DispatchLoaderDefault>
15023     ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d = Dispatch() ) const;
15024 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15025 
15026     template<typename Dispatch = DispatchLoaderDefault>
15027     Result acquireNextImageKHR( vk::SwapchainKHR swapchain, uint64_t timeout, vk::Semaphore semaphore, vk::Fence fence, uint32_t* pImageIndex, Dispatch const &d = Dispatch() ) const;
15028 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15029     template<typename Dispatch = DispatchLoaderDefault>
15030     ResultValue<uint32_t> acquireNextImageKHR( vk::SwapchainKHR swapchain, uint64_t timeout, vk::Semaphore semaphore, vk::Fence fence, Dispatch const &d = Dispatch() ) const;
15031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15032 
15033     template<typename Dispatch = DispatchLoaderDefault>
15034     Result acquirePerformanceConfigurationINTEL( const vk::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, vk::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d = Dispatch() ) const;
15035 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15036     template<typename Dispatch = DispatchLoaderDefault>
15037     ResultValueType<vk::PerformanceConfigurationINTEL>::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d = Dispatch() ) const;
15038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15039 
15040     template<typename Dispatch = DispatchLoaderDefault>
15041     Result allocateCommandBuffers( const vk::CommandBufferAllocateInfo* pAllocateInfo, vk::CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
15042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15043     template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = DispatchLoaderDefault>
15044     typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
15045     template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = DispatchLoaderDefault>
15046     typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
15047 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15048     template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = DispatchLoaderDefault>
15049     typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
15050     template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = DispatchLoaderDefault>
15051     typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
15052 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15053 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15054 
15055     template<typename Dispatch = DispatchLoaderDefault>
15056     Result allocateDescriptorSets( const vk::DescriptorSetAllocateInfo* pAllocateInfo, vk::DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
15057 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15058     template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = DispatchLoaderDefault>
15059     typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
15060     template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = DispatchLoaderDefault>
15061     typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
15062 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15063     template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = DispatchLoaderDefault>
15064     typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
15065     template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = DispatchLoaderDefault>
15066     typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
15067 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15069 
15070     template<typename Dispatch = DispatchLoaderDefault>
15071     Result allocateMemory( const vk::MemoryAllocateInfo* pAllocateInfo, const vk::AllocationCallbacks* pAllocator, vk::DeviceMemory* pMemory, Dispatch const &d = Dispatch() ) const;
15072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15073     template<typename Dispatch = DispatchLoaderDefault>
15074     ResultValueType<vk::DeviceMemory>::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15075 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15076     template<typename Dispatch = DispatchLoaderDefault>
15077     typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15078 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15080 
15081     template<typename Dispatch = DispatchLoaderDefault>
15082     Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const vk::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d = Dispatch() ) const;
15083 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15084     template<typename Dispatch = DispatchLoaderDefault>
15085     ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const vk::BindAccelerationStructureMemoryInfoNV> bindInfos, Dispatch const &d = Dispatch() ) const;
15086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15087 
15088 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15089     template<typename Dispatch = DispatchLoaderDefault>
15090     Result bindBufferMemory( vk::Buffer buffer, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
15091 #else
15092     template<typename Dispatch = DispatchLoaderDefault>
15093     ResultValueType<void>::type bindBufferMemory( vk::Buffer buffer, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
15094 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15095 
15096     template<typename Dispatch = DispatchLoaderDefault>
15097     Result bindBufferMemory2( uint32_t bindInfoCount, const vk::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
15098 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15099     template<typename Dispatch = DispatchLoaderDefault>
15100     ResultValueType<void>::type bindBufferMemory2( ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
15101 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15102 
15103     template<typename Dispatch = DispatchLoaderDefault>
15104     Result bindBufferMemory2KHR( uint32_t bindInfoCount, const vk::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
15105 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15106     template<typename Dispatch = DispatchLoaderDefault>
15107     ResultValueType<void>::type bindBufferMemory2KHR( ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
15108 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15109 
15110 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15111     template<typename Dispatch = DispatchLoaderDefault>
15112     Result bindImageMemory( vk::Image image, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
15113 #else
15114     template<typename Dispatch = DispatchLoaderDefault>
15115     ResultValueType<void>::type bindImageMemory( vk::Image image, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
15116 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15117 
15118     template<typename Dispatch = DispatchLoaderDefault>
15119     Result bindImageMemory2( uint32_t bindInfoCount, const vk::BindImageMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
15120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15121     template<typename Dispatch = DispatchLoaderDefault>
15122     ResultValueType<void>::type bindImageMemory2( ArrayProxy<const vk::BindImageMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
15123 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15124 
15125     template<typename Dispatch = DispatchLoaderDefault>
15126     Result bindImageMemory2KHR( uint32_t bindInfoCount, const vk::BindImageMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
15127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15128     template<typename Dispatch = DispatchLoaderDefault>
15129     ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const vk::BindImageMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
15130 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15131 
15132 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15133     template<typename Dispatch = DispatchLoaderDefault>
15134     Result compileDeferredNV( vk::Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const;
15135 #else
15136     template<typename Dispatch = DispatchLoaderDefault>
15137     ResultValueType<void>::type compileDeferredNV( vk::Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const;
15138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15139 
15140     template<typename Dispatch = DispatchLoaderDefault>
15141     Result createAccelerationStructureNV( const vk::AccelerationStructureCreateInfoNV* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::AccelerationStructureNV* pAccelerationStructure, Dispatch const &d = Dispatch() ) const;
15142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15143     template<typename Dispatch = DispatchLoaderDefault>
15144     ResultValueType<vk::AccelerationStructureNV>::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15145 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15146     template<typename Dispatch = DispatchLoaderDefault>
15147     typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15148 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15149 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15150 
15151     template<typename Dispatch = DispatchLoaderDefault>
15152     Result createBuffer( const vk::BufferCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Buffer* pBuffer, Dispatch const &d = Dispatch() ) const;
15153 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15154     template<typename Dispatch = DispatchLoaderDefault>
15155     ResultValueType<vk::Buffer>::type createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15156 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15157     template<typename Dispatch = DispatchLoaderDefault>
15158     typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15159 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15160 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15161 
15162     template<typename Dispatch = DispatchLoaderDefault>
15163     Result createBufferView( const vk::BufferViewCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::BufferView* pView, Dispatch const &d = Dispatch() ) const;
15164 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15165     template<typename Dispatch = DispatchLoaderDefault>
15166     ResultValueType<vk::BufferView>::type createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15167 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15168     template<typename Dispatch = DispatchLoaderDefault>
15169     typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15170 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15171 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15172 
15173     template<typename Dispatch = DispatchLoaderDefault>
15174     Result createCommandPool( const vk::CommandPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::CommandPool* pCommandPool, Dispatch const &d = Dispatch() ) const;
15175 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15176     template<typename Dispatch = DispatchLoaderDefault>
15177     ResultValueType<vk::CommandPool>::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15178 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15179     template<typename Dispatch = DispatchLoaderDefault>
15180     typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15181 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15182 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15183 
15184     template<typename Dispatch = DispatchLoaderDefault>
15185     Result createComputePipelines( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::ComputePipelineCreateInfo* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
15186 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15187     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15188     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createComputePipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15189     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15190     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createComputePipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15191     template<typename Dispatch = DispatchLoaderDefault>
15192     ResultValueType<Pipeline>::type createComputePipeline( vk::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15193 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15194     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15195     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createComputePipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15196     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15197     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createComputePipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15198     template<typename Dispatch = DispatchLoaderDefault>
15199     typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createComputePipelineUnique( vk::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15200 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15201 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15202 
15203     template<typename Dispatch = DispatchLoaderDefault>
15204     Result createDescriptorPool( const vk::DescriptorPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorPool* pDescriptorPool, Dispatch const &d = Dispatch() ) const;
15205 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15206     template<typename Dispatch = DispatchLoaderDefault>
15207     ResultValueType<vk::DescriptorPool>::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15208 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15209     template<typename Dispatch = DispatchLoaderDefault>
15210     typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15211 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15212 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15213 
15214     template<typename Dispatch = DispatchLoaderDefault>
15215     Result createDescriptorSetLayout( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorSetLayout* pSetLayout, Dispatch const &d = Dispatch() ) const;
15216 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15217     template<typename Dispatch = DispatchLoaderDefault>
15218     ResultValueType<vk::DescriptorSetLayout>::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15219 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15220     template<typename Dispatch = DispatchLoaderDefault>
15221     typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15222 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15223 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15224 
15225     template<typename Dispatch = DispatchLoaderDefault>
15226     Result createDescriptorUpdateTemplate( const vk::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = Dispatch() ) const;
15227 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15228     template<typename Dispatch = DispatchLoaderDefault>
15229     ResultValueType<vk::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15230 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15231     template<typename Dispatch = DispatchLoaderDefault>
15232     typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15233 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15235 
15236     template<typename Dispatch = DispatchLoaderDefault>
15237     Result createDescriptorUpdateTemplateKHR( const vk::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = Dispatch() ) const;
15238 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15239     template<typename Dispatch = DispatchLoaderDefault>
15240     ResultValueType<vk::DescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15241 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15242     template<typename Dispatch = DispatchLoaderDefault>
15243     typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15244 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15245 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15246 
15247     template<typename Dispatch = DispatchLoaderDefault>
15248     Result createEvent( const vk::EventCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Event* pEvent, Dispatch const &d = Dispatch() ) const;
15249 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15250     template<typename Dispatch = DispatchLoaderDefault>
15251     ResultValueType<vk::Event>::type createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15252 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15253     template<typename Dispatch = DispatchLoaderDefault>
15254     typename ResultValueType<UniqueHandle<Event,Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15255 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15256 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15257 
15258     template<typename Dispatch = DispatchLoaderDefault>
15259     Result createFence( const vk::FenceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d = Dispatch() ) const;
15260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15261     template<typename Dispatch = DispatchLoaderDefault>
15262     ResultValueType<vk::Fence>::type createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15263 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15264     template<typename Dispatch = DispatchLoaderDefault>
15265     typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15266 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15267 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15268 
15269     template<typename Dispatch = DispatchLoaderDefault>
15270     Result createFramebuffer( const vk::FramebufferCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Framebuffer* pFramebuffer, Dispatch const &d = Dispatch() ) const;
15271 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15272     template<typename Dispatch = DispatchLoaderDefault>
15273     ResultValueType<vk::Framebuffer>::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15274 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15275     template<typename Dispatch = DispatchLoaderDefault>
15276     typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15277 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15278 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15279 
15280     template<typename Dispatch = DispatchLoaderDefault>
15281     Result createGraphicsPipelines( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::GraphicsPipelineCreateInfo* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
15282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15283     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15284     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createGraphicsPipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15285     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15286     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createGraphicsPipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15287     template<typename Dispatch = DispatchLoaderDefault>
15288     ResultValueType<Pipeline>::type createGraphicsPipeline( vk::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15289 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15290     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15291     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createGraphicsPipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15292     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15293     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createGraphicsPipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15294     template<typename Dispatch = DispatchLoaderDefault>
15295     typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createGraphicsPipelineUnique( vk::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15296 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15297 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15298 
15299     template<typename Dispatch = DispatchLoaderDefault>
15300     Result createImage( const vk::ImageCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Image* pImage, Dispatch const &d = Dispatch() ) const;
15301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15302     template<typename Dispatch = DispatchLoaderDefault>
15303     ResultValueType<vk::Image>::type createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15304 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15305     template<typename Dispatch = DispatchLoaderDefault>
15306     typename ResultValueType<UniqueHandle<Image,Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15307 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15309 
15310     template<typename Dispatch = DispatchLoaderDefault>
15311     Result createImageView( const vk::ImageViewCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ImageView* pView, Dispatch const &d = Dispatch() ) const;
15312 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15313     template<typename Dispatch = DispatchLoaderDefault>
15314     ResultValueType<vk::ImageView>::type createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15315 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15316     template<typename Dispatch = DispatchLoaderDefault>
15317     typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15318 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15319 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15320 
15321     template<typename Dispatch = DispatchLoaderDefault>
15322     Result createIndirectCommandsLayoutNVX( const vk::IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d = Dispatch() ) const;
15323 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15324     template<typename Dispatch = DispatchLoaderDefault>
15325     ResultValueType<vk::IndirectCommandsLayoutNVX>::type createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15326 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15327     template<typename Dispatch = DispatchLoaderDefault>
15328     typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15329 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15331 
15332     template<typename Dispatch = DispatchLoaderDefault>
15333     Result createObjectTableNVX( const vk::ObjectTableCreateInfoNVX* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ObjectTableNVX* pObjectTable, Dispatch const &d = Dispatch() ) const;
15334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15335     template<typename Dispatch = DispatchLoaderDefault>
15336     ResultValueType<vk::ObjectTableNVX>::type createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15337 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15338     template<typename Dispatch = DispatchLoaderDefault>
15339     typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15340 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15342 
15343     template<typename Dispatch = DispatchLoaderDefault>
15344     Result createPipelineCache( const vk::PipelineCacheCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::PipelineCache* pPipelineCache, Dispatch const &d = Dispatch() ) const;
15345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15346     template<typename Dispatch = DispatchLoaderDefault>
15347     ResultValueType<vk::PipelineCache>::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15348 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15349     template<typename Dispatch = DispatchLoaderDefault>
15350     typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15351 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15352 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15353 
15354     template<typename Dispatch = DispatchLoaderDefault>
15355     Result createPipelineLayout( const vk::PipelineLayoutCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::PipelineLayout* pPipelineLayout, Dispatch const &d = Dispatch() ) const;
15356 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15357     template<typename Dispatch = DispatchLoaderDefault>
15358     ResultValueType<vk::PipelineLayout>::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15359 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15360     template<typename Dispatch = DispatchLoaderDefault>
15361     typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15362 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15364 
15365     template<typename Dispatch = DispatchLoaderDefault>
15366     Result createQueryPool( const vk::QueryPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::QueryPool* pQueryPool, Dispatch const &d = Dispatch() ) const;
15367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15368     template<typename Dispatch = DispatchLoaderDefault>
15369     ResultValueType<vk::QueryPool>::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15370 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15371     template<typename Dispatch = DispatchLoaderDefault>
15372     typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15373 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15375 
15376     template<typename Dispatch = DispatchLoaderDefault>
15377     Result createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::RayTracingPipelineCreateInfoNV* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
15378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15379     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15380     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15381     template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
15382     typename ResultValueType<std::vector<Pipeline,Allocator>>::type createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15383     template<typename Dispatch = DispatchLoaderDefault>
15384     ResultValueType<Pipeline>::type createRayTracingPipelineNV( vk::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15385 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15386     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15387     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createRayTracingPipelinesNVUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15388     template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
15389     typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createRayTracingPipelinesNVUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15390     template<typename Dispatch = DispatchLoaderDefault>
15391     typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createRayTracingPipelineNVUnique( vk::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15392 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15393 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15394 
15395     template<typename Dispatch = DispatchLoaderDefault>
15396     Result createRenderPass( const vk::RenderPassCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::RenderPass* pRenderPass, Dispatch const &d = Dispatch() ) const;
15397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15398     template<typename Dispatch = DispatchLoaderDefault>
15399     ResultValueType<vk::RenderPass>::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15400 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15401     template<typename Dispatch = DispatchLoaderDefault>
15402     typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15403 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15404 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15405 
15406     template<typename Dispatch = DispatchLoaderDefault>
15407     Result createRenderPass2KHR( const vk::RenderPassCreateInfo2KHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::RenderPass* pRenderPass, Dispatch const &d = Dispatch() ) const;
15408 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15409     template<typename Dispatch = DispatchLoaderDefault>
15410     ResultValueType<vk::RenderPass>::type createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15411 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15412     template<typename Dispatch = DispatchLoaderDefault>
15413     typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15414 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15415 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15416 
15417     template<typename Dispatch = DispatchLoaderDefault>
15418     Result createSampler( const vk::SamplerCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Sampler* pSampler, Dispatch const &d = Dispatch() ) const;
15419 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15420     template<typename Dispatch = DispatchLoaderDefault>
15421     ResultValueType<vk::Sampler>::type createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15422 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15423     template<typename Dispatch = DispatchLoaderDefault>
15424     typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15425 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15427 
15428     template<typename Dispatch = DispatchLoaderDefault>
15429     Result createSamplerYcbcrConversion( const vk::SamplerYcbcrConversionCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = Dispatch() ) const;
15430 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15431     template<typename Dispatch = DispatchLoaderDefault>
15432     ResultValueType<vk::SamplerYcbcrConversion>::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15433 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15434     template<typename Dispatch = DispatchLoaderDefault>
15435     typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15436 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15437 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15438 
15439     template<typename Dispatch = DispatchLoaderDefault>
15440     Result createSamplerYcbcrConversionKHR( const vk::SamplerYcbcrConversionCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = Dispatch() ) const;
15441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15442     template<typename Dispatch = DispatchLoaderDefault>
15443     ResultValueType<vk::SamplerYcbcrConversion>::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15444 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15445     template<typename Dispatch = DispatchLoaderDefault>
15446     typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15447 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15449 
15450     template<typename Dispatch = DispatchLoaderDefault>
15451     Result createSemaphore( const vk::SemaphoreCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Semaphore* pSemaphore, Dispatch const &d = Dispatch() ) const;
15452 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15453     template<typename Dispatch = DispatchLoaderDefault>
15454     ResultValueType<vk::Semaphore>::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15455 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15456     template<typename Dispatch = DispatchLoaderDefault>
15457     typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15458 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15459 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15460 
15461     template<typename Dispatch = DispatchLoaderDefault>
15462     Result createShaderModule( const vk::ShaderModuleCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ShaderModule* pShaderModule, Dispatch const &d = Dispatch() ) const;
15463 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15464     template<typename Dispatch = DispatchLoaderDefault>
15465     ResultValueType<vk::ShaderModule>::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15466 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15467     template<typename Dispatch = DispatchLoaderDefault>
15468     typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15469 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15470 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15471 
15472     template<typename Dispatch = DispatchLoaderDefault>
15473     Result createSharedSwapchainsKHR( uint32_t swapchainCount, const vk::SwapchainCreateInfoKHR* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::SwapchainKHR* pSwapchains, Dispatch const &d = Dispatch() ) const;
15474 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15475     template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
15476     typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15477     template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
15478     typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15479     template<typename Dispatch = DispatchLoaderDefault>
15480     ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15481 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15482     template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
15483     typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15484     template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
15485     typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
15486     template<typename Dispatch = DispatchLoaderDefault>
15487     typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15488 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15489 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15490 
15491     template<typename Dispatch = DispatchLoaderDefault>
15492     Result createSwapchainKHR( const vk::SwapchainCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SwapchainKHR* pSwapchain, Dispatch const &d = Dispatch() ) const;
15493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15494     template<typename Dispatch = DispatchLoaderDefault>
15495     ResultValueType<vk::SwapchainKHR>::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15496 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15497     template<typename Dispatch = DispatchLoaderDefault>
15498     typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15499 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15500 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15501 
15502     template<typename Dispatch = DispatchLoaderDefault>
15503     Result createValidationCacheEXT( const vk::ValidationCacheCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ValidationCacheEXT* pValidationCache, Dispatch const &d = Dispatch() ) const;
15504 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15505     template<typename Dispatch = DispatchLoaderDefault>
15506     ResultValueType<vk::ValidationCacheEXT>::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15507 #ifndef VULKAN_HPP_NO_SMART_HANDLE
15508     template<typename Dispatch = DispatchLoaderDefault>
15509     typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15510 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
15511 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15512 
15513     template<typename Dispatch = DispatchLoaderDefault>
15514     Result debugMarkerSetObjectNameEXT( const vk::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d = Dispatch() ) const;
15515 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15516     template<typename Dispatch = DispatchLoaderDefault>
15517     ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d = Dispatch() ) const;
15518 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15519 
15520     template<typename Dispatch = DispatchLoaderDefault>
15521     Result debugMarkerSetObjectTagEXT( const vk::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d = Dispatch() ) const;
15522 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15523     template<typename Dispatch = DispatchLoaderDefault>
15524     ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d = Dispatch() ) const;
15525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15526 
15527     template<typename Dispatch = DispatchLoaderDefault>
15528     void destroyAccelerationStructureNV( vk::AccelerationStructureNV accelerationStructure, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15529 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15530     template<typename Dispatch = DispatchLoaderDefault>
15531     void destroyAccelerationStructureNV( vk::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15532 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15533 
15534     template<typename Dispatch = DispatchLoaderDefault>
15535     void destroy( vk::AccelerationStructureNV accelerationStructure, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15536 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15537     template<typename Dispatch = DispatchLoaderDefault>
15538     void destroy( vk::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15539 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15540 
15541     template<typename Dispatch = DispatchLoaderDefault>
15542     void destroyBuffer( vk::Buffer buffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15543 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15544     template<typename Dispatch = DispatchLoaderDefault>
15545     void destroyBuffer( vk::Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15547 
15548     template<typename Dispatch = DispatchLoaderDefault>
15549     void destroy( vk::Buffer buffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15550 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15551     template<typename Dispatch = DispatchLoaderDefault>
15552     void destroy( vk::Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15554 
15555     template<typename Dispatch = DispatchLoaderDefault>
15556     void destroyBufferView( vk::BufferView bufferView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15558     template<typename Dispatch = DispatchLoaderDefault>
15559     void destroyBufferView( vk::BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15560 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15561 
15562     template<typename Dispatch = DispatchLoaderDefault>
15563     void destroy( vk::BufferView bufferView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15564 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15565     template<typename Dispatch = DispatchLoaderDefault>
15566     void destroy( vk::BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15567 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15568 
15569     template<typename Dispatch = DispatchLoaderDefault>
15570     void destroyCommandPool( vk::CommandPool commandPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15572     template<typename Dispatch = DispatchLoaderDefault>
15573     void destroyCommandPool( vk::CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15574 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15575 
15576     template<typename Dispatch = DispatchLoaderDefault>
15577     void destroy( vk::CommandPool commandPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15579     template<typename Dispatch = DispatchLoaderDefault>
15580     void destroy( vk::CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15581 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15582 
15583     template<typename Dispatch = DispatchLoaderDefault>
15584     void destroyDescriptorPool( vk::DescriptorPool descriptorPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15585 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15586     template<typename Dispatch = DispatchLoaderDefault>
15587     void destroyDescriptorPool( vk::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15588 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15589 
15590     template<typename Dispatch = DispatchLoaderDefault>
15591     void destroy( vk::DescriptorPool descriptorPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15592 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15593     template<typename Dispatch = DispatchLoaderDefault>
15594     void destroy( vk::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15595 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15596 
15597     template<typename Dispatch = DispatchLoaderDefault>
15598     void destroyDescriptorSetLayout( vk::DescriptorSetLayout descriptorSetLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15600     template<typename Dispatch = DispatchLoaderDefault>
15601     void destroyDescriptorSetLayout( vk::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15602 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15603 
15604     template<typename Dispatch = DispatchLoaderDefault>
15605     void destroy( vk::DescriptorSetLayout descriptorSetLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15606 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15607     template<typename Dispatch = DispatchLoaderDefault>
15608     void destroy( vk::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15609 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15610 
15611     template<typename Dispatch = DispatchLoaderDefault>
15612     void destroyDescriptorUpdateTemplate( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15613 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15614     template<typename Dispatch = DispatchLoaderDefault>
15615     void destroyDescriptorUpdateTemplate( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15616 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15617 
15618     template<typename Dispatch = DispatchLoaderDefault>
15619     void destroy( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15621     template<typename Dispatch = DispatchLoaderDefault>
15622     void destroy( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15623 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15624 
15625     template<typename Dispatch = DispatchLoaderDefault>
15626     void destroyDescriptorUpdateTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15627 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15628     template<typename Dispatch = DispatchLoaderDefault>
15629     void destroyDescriptorUpdateTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15631 
15632     template<typename Dispatch = DispatchLoaderDefault>
15633     void destroy( const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15634 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15635     template<typename Dispatch = DispatchLoaderDefault>
15636     void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15637 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15638 
15639     template<typename Dispatch = DispatchLoaderDefault>
15640     void destroyEvent( vk::Event event, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15641 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15642     template<typename Dispatch = DispatchLoaderDefault>
15643     void destroyEvent( vk::Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15644 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15645 
15646     template<typename Dispatch = DispatchLoaderDefault>
15647     void destroy( vk::Event event, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15648 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15649     template<typename Dispatch = DispatchLoaderDefault>
15650     void destroy( vk::Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15651 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15652 
15653     template<typename Dispatch = DispatchLoaderDefault>
15654     void destroyFence( vk::Fence fence, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15655 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15656     template<typename Dispatch = DispatchLoaderDefault>
15657     void destroyFence( vk::Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15658 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15659 
15660     template<typename Dispatch = DispatchLoaderDefault>
15661     void destroy( vk::Fence fence, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15662 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15663     template<typename Dispatch = DispatchLoaderDefault>
15664     void destroy( vk::Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15666 
15667     template<typename Dispatch = DispatchLoaderDefault>
15668     void destroyFramebuffer( vk::Framebuffer framebuffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15669 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15670     template<typename Dispatch = DispatchLoaderDefault>
15671     void destroyFramebuffer( vk::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15672 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15673 
15674     template<typename Dispatch = DispatchLoaderDefault>
15675     void destroy( vk::Framebuffer framebuffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15677     template<typename Dispatch = DispatchLoaderDefault>
15678     void destroy( vk::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15680 
15681     template<typename Dispatch = DispatchLoaderDefault>
15682     void destroyImage( vk::Image image, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15683 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15684     template<typename Dispatch = DispatchLoaderDefault>
15685     void destroyImage( vk::Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15687 
15688     template<typename Dispatch = DispatchLoaderDefault>
15689     void destroy( vk::Image image, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15690 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15691     template<typename Dispatch = DispatchLoaderDefault>
15692     void destroy( vk::Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15694 
15695     template<typename Dispatch = DispatchLoaderDefault>
15696     void destroyImageView( vk::ImageView imageView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15697 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15698     template<typename Dispatch = DispatchLoaderDefault>
15699     void destroyImageView( vk::ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15700 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15701 
15702     template<typename Dispatch = DispatchLoaderDefault>
15703     void destroy( vk::ImageView imageView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15705     template<typename Dispatch = DispatchLoaderDefault>
15706     void destroy( vk::ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15707 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15708 
15709     template<typename Dispatch = DispatchLoaderDefault>
15710     void destroyIndirectCommandsLayoutNVX( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15711 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15712     template<typename Dispatch = DispatchLoaderDefault>
15713     void destroyIndirectCommandsLayoutNVX( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15714 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15715 
15716     template<typename Dispatch = DispatchLoaderDefault>
15717     void destroy( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15719     template<typename Dispatch = DispatchLoaderDefault>
15720     void destroy( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15722 
15723     template<typename Dispatch = DispatchLoaderDefault>
15724     void destroyObjectTableNVX( vk::ObjectTableNVX objectTable, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15726     template<typename Dispatch = DispatchLoaderDefault>
15727     void destroyObjectTableNVX( vk::ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15728 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15729 
15730     template<typename Dispatch = DispatchLoaderDefault>
15731     void destroy( vk::ObjectTableNVX objectTable, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15733     template<typename Dispatch = DispatchLoaderDefault>
15734     void destroy( vk::ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15735 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15736 
15737     template<typename Dispatch = DispatchLoaderDefault>
15738     void destroyPipeline( vk::Pipeline pipeline, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15739 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15740     template<typename Dispatch = DispatchLoaderDefault>
15741     void destroyPipeline( vk::Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15742 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15743 
15744     template<typename Dispatch = DispatchLoaderDefault>
15745     void destroy( vk::Pipeline pipeline, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15746 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15747     template<typename Dispatch = DispatchLoaderDefault>
15748     void destroy( vk::Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15749 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15750 
15751     template<typename Dispatch = DispatchLoaderDefault>
15752     void destroyPipelineCache( vk::PipelineCache pipelineCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15754     template<typename Dispatch = DispatchLoaderDefault>
15755     void destroyPipelineCache( vk::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15756 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15757 
15758     template<typename Dispatch = DispatchLoaderDefault>
15759     void destroy( vk::PipelineCache pipelineCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15760 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15761     template<typename Dispatch = DispatchLoaderDefault>
15762     void destroy( vk::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15763 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15764 
15765     template<typename Dispatch = DispatchLoaderDefault>
15766     void destroyPipelineLayout( vk::PipelineLayout pipelineLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15767 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15768     template<typename Dispatch = DispatchLoaderDefault>
15769     void destroyPipelineLayout( vk::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15770 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15771 
15772     template<typename Dispatch = DispatchLoaderDefault>
15773     void destroy( vk::PipelineLayout pipelineLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15774 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15775     template<typename Dispatch = DispatchLoaderDefault>
15776     void destroy( vk::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15778 
15779     template<typename Dispatch = DispatchLoaderDefault>
15780     void destroyQueryPool( vk::QueryPool queryPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15782     template<typename Dispatch = DispatchLoaderDefault>
15783     void destroyQueryPool( vk::QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15784 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15785 
15786     template<typename Dispatch = DispatchLoaderDefault>
15787     void destroy( vk::QueryPool queryPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15788 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15789     template<typename Dispatch = DispatchLoaderDefault>
15790     void destroy( vk::QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15791 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15792 
15793     template<typename Dispatch = DispatchLoaderDefault>
15794     void destroyRenderPass( vk::RenderPass renderPass, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15795 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15796     template<typename Dispatch = DispatchLoaderDefault>
15797     void destroyRenderPass( vk::RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15798 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15799 
15800     template<typename Dispatch = DispatchLoaderDefault>
15801     void destroy( vk::RenderPass renderPass, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15802 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15803     template<typename Dispatch = DispatchLoaderDefault>
15804     void destroy( vk::RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15805 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15806 
15807     template<typename Dispatch = DispatchLoaderDefault>
15808     void destroySampler( vk::Sampler sampler, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15810     template<typename Dispatch = DispatchLoaderDefault>
15811     void destroySampler( vk::Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15812 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15813 
15814     template<typename Dispatch = DispatchLoaderDefault>
15815     void destroy( vk::Sampler sampler, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15817     template<typename Dispatch = DispatchLoaderDefault>
15818     void destroy( vk::Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15819 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15820 
15821     template<typename Dispatch = DispatchLoaderDefault>
15822     void destroySamplerYcbcrConversion( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15823 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15824     template<typename Dispatch = DispatchLoaderDefault>
15825     void destroySamplerYcbcrConversion( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15826 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15827 
15828     template<typename Dispatch = DispatchLoaderDefault>
15829     void destroy( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15830 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15831     template<typename Dispatch = DispatchLoaderDefault>
15832     void destroy( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15833 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15834 
15835     template<typename Dispatch = DispatchLoaderDefault>
15836     void destroySamplerYcbcrConversionKHR( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15837 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15838     template<typename Dispatch = DispatchLoaderDefault>
15839     void destroySamplerYcbcrConversionKHR( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15840 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15841 
15842     template<typename Dispatch = DispatchLoaderDefault>
15843     void destroySemaphore( vk::Semaphore semaphore, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15845     template<typename Dispatch = DispatchLoaderDefault>
15846     void destroySemaphore( vk::Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15847 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15848 
15849     template<typename Dispatch = DispatchLoaderDefault>
15850     void destroy( vk::Semaphore semaphore, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15851 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15852     template<typename Dispatch = DispatchLoaderDefault>
15853     void destroy( vk::Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15854 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15855 
15856     template<typename Dispatch = DispatchLoaderDefault>
15857     void destroyShaderModule( vk::ShaderModule shaderModule, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15859     template<typename Dispatch = DispatchLoaderDefault>
15860     void destroyShaderModule( vk::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15862 
15863     template<typename Dispatch = DispatchLoaderDefault>
15864     void destroy( vk::ShaderModule shaderModule, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15865 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15866     template<typename Dispatch = DispatchLoaderDefault>
15867     void destroy( vk::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15868 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15869 
15870     template<typename Dispatch = DispatchLoaderDefault>
15871     void destroySwapchainKHR( vk::SwapchainKHR swapchain, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15872 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15873     template<typename Dispatch = DispatchLoaderDefault>
15874     void destroySwapchainKHR( vk::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15876 
15877     template<typename Dispatch = DispatchLoaderDefault>
15878     void destroy( vk::SwapchainKHR swapchain, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15880     template<typename Dispatch = DispatchLoaderDefault>
15881     void destroy( vk::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15883 
15884     template<typename Dispatch = DispatchLoaderDefault>
15885     void destroyValidationCacheEXT( vk::ValidationCacheEXT validationCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15886 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15887     template<typename Dispatch = DispatchLoaderDefault>
15888     void destroyValidationCacheEXT( vk::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15890 
15891     template<typename Dispatch = DispatchLoaderDefault>
15892     void destroy( vk::ValidationCacheEXT validationCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15893 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15894     template<typename Dispatch = DispatchLoaderDefault>
15895     void destroy( vk::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15896 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15897 
15898 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15899     template<typename Dispatch = DispatchLoaderDefault>
15900     Result waitIdle(Dispatch const &d = Dispatch() ) const;
15901 #else
15902     template<typename Dispatch = DispatchLoaderDefault>
15903     ResultValueType<void>::type waitIdle(Dispatch const &d = Dispatch() ) const;
15904 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15905 
15906     template<typename Dispatch = DispatchLoaderDefault>
15907     Result displayPowerControlEXT( vk::DisplayKHR display, const vk::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d = Dispatch() ) const;
15908 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15909     template<typename Dispatch = DispatchLoaderDefault>
15910     ResultValueType<void>::type displayPowerControlEXT( vk::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d = Dispatch() ) const;
15911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15912 
15913     template<typename Dispatch = DispatchLoaderDefault>
15914     Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const vk::MappedMemoryRange* pMemoryRanges, Dispatch const &d = Dispatch() ) const;
15915 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15916     template<typename Dispatch = DispatchLoaderDefault>
15917     ResultValueType<void>::type flushMappedMemoryRanges( ArrayProxy<const vk::MappedMemoryRange> memoryRanges, Dispatch const &d = Dispatch() ) const;
15918 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15919 
15920     template<typename Dispatch = DispatchLoaderDefault>
15921     void freeCommandBuffers( vk::CommandPool commandPool, uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
15922 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15923     template<typename Dispatch = DispatchLoaderDefault>
15924     void freeCommandBuffers( vk::CommandPool commandPool, ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
15925 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15926 
15927     template<typename Dispatch = DispatchLoaderDefault>
15928     void free( vk::CommandPool commandPool, uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
15929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15930     template<typename Dispatch = DispatchLoaderDefault>
15931     void free( vk::CommandPool commandPool, ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
15932 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15933 
15934     template<typename Dispatch = DispatchLoaderDefault>
15935     Result freeDescriptorSets( vk::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
15936 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15937     template<typename Dispatch = DispatchLoaderDefault>
15938     ResultValueType<void>::type freeDescriptorSets( vk::DescriptorPool descriptorPool, ArrayProxy<const vk::DescriptorSet> descriptorSets, Dispatch const &d = Dispatch() ) const;
15939 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15940 
15941     template<typename Dispatch = DispatchLoaderDefault>
15942     Result free( vk::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
15943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15944     template<typename Dispatch = DispatchLoaderDefault>
15945     ResultValueType<void>::type free( vk::DescriptorPool descriptorPool, ArrayProxy<const vk::DescriptorSet> descriptorSets, Dispatch const &d = Dispatch() ) const;
15946 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15947 
15948     template<typename Dispatch = DispatchLoaderDefault>
15949     void freeMemory( vk::DeviceMemory memory, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15950 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15951     template<typename Dispatch = DispatchLoaderDefault>
15952     void freeMemory( vk::DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15953 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15954 
15955     template<typename Dispatch = DispatchLoaderDefault>
15956     void free( vk::DeviceMemory memory, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
15957 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15958     template<typename Dispatch = DispatchLoaderDefault>
15959     void free( vk::DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
15960 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15961 
15962     template<typename Dispatch = DispatchLoaderDefault>
15963     Result getAccelerationStructureHandleNV( vk::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const;
15964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15965     template<typename T, typename Dispatch = DispatchLoaderDefault>
15966     ResultValueType<void>::type getAccelerationStructureHandleNV( vk::AccelerationStructureNV accelerationStructure, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const;
15967 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15968 
15969     template<typename Dispatch = DispatchLoaderDefault>
15970     void getAccelerationStructureMemoryRequirementsNV( const vk::AccelerationStructureMemoryRequirementsInfoNV* pInfo, vk::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
15971 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15972     template<typename Dispatch = DispatchLoaderDefault>
15973     vk::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = Dispatch() ) const;
15974     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
15975     StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = Dispatch() ) const;
15976 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15977 
15978 #ifdef VK_USE_PLATFORM_ANDROID_KHR
15979     template<typename Dispatch = DispatchLoaderDefault>
15980     Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, vk::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = Dispatch() ) const;
15981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15982     template<typename Dispatch = DispatchLoaderDefault>
15983     ResultValueType<vk::AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
15984     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
15985     typename ResultValueType<StructureChain<X, Y, Z...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
15986 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15987 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
15988 
15989     template<typename Dispatch = DispatchLoaderDefault>
15990     DeviceAddress getBufferAddressEXT( const vk::BufferDeviceAddressInfoEXT* pInfo, Dispatch const &d = Dispatch() ) const;
15991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15992     template<typename Dispatch = DispatchLoaderDefault>
15993     DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfoEXT & info, Dispatch const &d = Dispatch() ) const;
15994 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15995 
15996     template<typename Dispatch = DispatchLoaderDefault>
15997     void getBufferMemoryRequirements( vk::Buffer buffer, vk::MemoryRequirements* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
15998 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15999     template<typename Dispatch = DispatchLoaderDefault>
16000     vk::MemoryRequirements getBufferMemoryRequirements( vk::Buffer buffer, Dispatch const &d = Dispatch() ) const;
16001 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16002 
16003     template<typename Dispatch = DispatchLoaderDefault>
16004     void getBufferMemoryRequirements2( const vk::BufferMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16006     template<typename Dispatch = DispatchLoaderDefault>
16007     vk::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16008     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16009     StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16011 
16012     template<typename Dispatch = DispatchLoaderDefault>
16013     void getBufferMemoryRequirements2KHR( const vk::BufferMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16015     template<typename Dispatch = DispatchLoaderDefault>
16016     vk::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16017     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16018     StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16019 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16020 
16021     template<typename Dispatch = DispatchLoaderDefault>
16022     Result getCalibratedTimestampsEXT( uint32_t timestampCount, const vk::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d = Dispatch() ) const;
16023 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16024     template<typename Dispatch = DispatchLoaderDefault>
16025     ResultValueType<uint64_t>::type getCalibratedTimestampsEXT( ArrayProxy<const vk::CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d = Dispatch() ) const;
16026 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16027 
16028     template<typename Dispatch = DispatchLoaderDefault>
16029     void getDescriptorSetLayoutSupport( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, vk::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = Dispatch() ) const;
16030 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16031     template<typename Dispatch = DispatchLoaderDefault>
16032     vk::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
16033     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16034     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
16035 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16036 
16037     template<typename Dispatch = DispatchLoaderDefault>
16038     void getDescriptorSetLayoutSupportKHR( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, vk::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = Dispatch() ) const;
16039 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16040     template<typename Dispatch = DispatchLoaderDefault>
16041     vk::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
16042     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16043     StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
16044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16045 
16046     template<typename Dispatch = DispatchLoaderDefault>
16047     void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, vk::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = Dispatch() ) const;
16048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16049     template<typename Dispatch = DispatchLoaderDefault>
16050     vk::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = Dispatch() ) const;
16051 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16052 
16053     template<typename Dispatch = DispatchLoaderDefault>
16054     void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, vk::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = Dispatch() ) const;
16055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16056     template<typename Dispatch = DispatchLoaderDefault>
16057     vk::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = Dispatch() ) const;
16058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16059 
16060     template<typename Dispatch = DispatchLoaderDefault>
16061     Result getGroupPresentCapabilitiesKHR( vk::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d = Dispatch() ) const;
16062 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16063     template<typename Dispatch = DispatchLoaderDefault>
16064     ResultValueType<vk::DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR(Dispatch const &d = Dispatch() ) const;
16065 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16066 
16067 #ifdef VK_USE_PLATFORM_WIN32_KHR
16068     template<typename Dispatch = DispatchLoaderDefault>
16069     Result getGroupSurfacePresentModes2EXT( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, vk::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = Dispatch() ) const;
16070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16071     template<typename Dispatch = DispatchLoaderDefault>
16072     ResultValueType<vk::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
16073 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16074 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16075 
16076     template<typename Dispatch = DispatchLoaderDefault>
16077     Result getGroupSurfacePresentModesKHR( vk::SurfaceKHR surface, vk::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = Dispatch() ) const;
16078 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16079     template<typename Dispatch = DispatchLoaderDefault>
16080     ResultValueType<vk::DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModesKHR( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
16081 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16082 
16083     template<typename Dispatch = DispatchLoaderDefault>
16084     void getMemoryCommitment( vk::DeviceMemory memory, vk::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d = Dispatch() ) const;
16085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16086     template<typename Dispatch = DispatchLoaderDefault>
16087     vk::DeviceSize getMemoryCommitment( vk::DeviceMemory memory, Dispatch const &d = Dispatch() ) const;
16088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16089 
16090     template<typename Dispatch = DispatchLoaderDefault>
16091     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = Dispatch() ) const;
16092 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16093     template<typename Dispatch = DispatchLoaderDefault>
16094     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = Dispatch() ) const;
16095 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16096 
16097     template<typename Dispatch = DispatchLoaderDefault>
16098     void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, vk::Queue* pQueue, Dispatch const &d = Dispatch() ) const;
16099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16100     template<typename Dispatch = DispatchLoaderDefault>
16101     vk::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d = Dispatch() ) const;
16102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16103 
16104     template<typename Dispatch = DispatchLoaderDefault>
16105     void getQueue2( const vk::DeviceQueueInfo2* pQueueInfo, vk::Queue* pQueue, Dispatch const &d = Dispatch() ) const;
16106 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16107     template<typename Dispatch = DispatchLoaderDefault>
16108     vk::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d = Dispatch() ) const;
16109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16110 
16111     template<typename Dispatch = DispatchLoaderDefault>
16112     Result getEventStatus( vk::Event event, Dispatch const &d = Dispatch() ) const;
16113 
16114     template<typename Dispatch = DispatchLoaderDefault>
16115     Result getFenceFdKHR( const vk::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
16116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16117     template<typename Dispatch = DispatchLoaderDefault>
16118     ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
16119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16120 
16121     template<typename Dispatch = DispatchLoaderDefault>
16122     Result getFenceStatus( vk::Fence fence, Dispatch const &d = Dispatch() ) const;
16123 
16124 #ifdef VK_USE_PLATFORM_WIN32_KHR
16125     template<typename Dispatch = DispatchLoaderDefault>
16126     Result getFenceWin32HandleKHR( const vk::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
16127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16128     template<typename Dispatch = DispatchLoaderDefault>
16129     ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16130 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16131 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16132 
16133     template<typename Dispatch = DispatchLoaderDefault>
16134     Result getImageDrmFormatModifierPropertiesEXT( vk::Image image, vk::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d = Dispatch() ) const;
16135 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16136     template<typename Dispatch = DispatchLoaderDefault>
16137     ResultValueType<vk::ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( vk::Image image, Dispatch const &d = Dispatch() ) const;
16138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16139 
16140     template<typename Dispatch = DispatchLoaderDefault>
16141     void getImageMemoryRequirements( vk::Image image, vk::MemoryRequirements* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16143     template<typename Dispatch = DispatchLoaderDefault>
16144     vk::MemoryRequirements getImageMemoryRequirements( vk::Image image, Dispatch const &d = Dispatch() ) const;
16145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16146 
16147     template<typename Dispatch = DispatchLoaderDefault>
16148     void getImageMemoryRequirements2( const vk::ImageMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16149 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16150     template<typename Dispatch = DispatchLoaderDefault>
16151     vk::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16152     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16153     StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16154 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16155 
16156     template<typename Dispatch = DispatchLoaderDefault>
16157     void getImageMemoryRequirements2KHR( const vk::ImageMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16158 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16159     template<typename Dispatch = DispatchLoaderDefault>
16160     vk::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16161     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16162     StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16163 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16164 
16165     template<typename Dispatch = DispatchLoaderDefault>
16166     void getImageSparseMemoryRequirements( vk::Image image, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16168     template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = DispatchLoaderDefault>
16169     std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( vk::Image image, Dispatch const &d = Dispatch() ) const;
16170     template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = DispatchLoaderDefault>
16171     std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( vk::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const;
16172 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16173 
16174     template<typename Dispatch = DispatchLoaderDefault>
16175     void getImageSparseMemoryRequirements2( const vk::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16177     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
16178     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16179     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
16180     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
16181 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16182 
16183     template<typename Dispatch = DispatchLoaderDefault>
16184     void getImageSparseMemoryRequirements2KHR( const vk::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
16185 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16186     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
16187     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
16188     template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
16189     std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
16190 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16191 
16192     template<typename Dispatch = DispatchLoaderDefault>
16193     void getImageSubresourceLayout( vk::Image image, const vk::ImageSubresource* pSubresource, vk::SubresourceLayout* pLayout, Dispatch const &d = Dispatch() ) const;
16194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16195     template<typename Dispatch = DispatchLoaderDefault>
16196     vk::SubresourceLayout getImageSubresourceLayout( vk::Image image, const ImageSubresource & subresource, Dispatch const &d = Dispatch() ) const;
16197 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16198 
16199     template<typename Dispatch = DispatchLoaderDefault>
16200     uint32_t getImageViewHandleNVX( const vk::ImageViewHandleInfoNVX* pInfo, Dispatch const &d = Dispatch() ) const;
16201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16202     template<typename Dispatch = DispatchLoaderDefault>
16203     uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d = Dispatch() ) const;
16204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16205 
16206 #ifdef VK_USE_PLATFORM_ANDROID_KHR
16207     template<typename Dispatch = DispatchLoaderDefault>
16208     Result getMemoryAndroidHardwareBufferANDROID( const vk::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d = Dispatch() ) const;
16209 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16210     template<typename Dispatch = DispatchLoaderDefault>
16211     ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d = Dispatch() ) const;
16212 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16213 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
16214 
16215     template<typename Dispatch = DispatchLoaderDefault>
16216     Result getMemoryFdKHR( const vk::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
16217 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16218     template<typename Dispatch = DispatchLoaderDefault>
16219     ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
16220 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16221 
16222     template<typename Dispatch = DispatchLoaderDefault>
16223     Result getMemoryFdPropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, int fd, vk::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d = Dispatch() ) const;
16224 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16225     template<typename Dispatch = DispatchLoaderDefault>
16226     ResultValueType<vk::MemoryFdPropertiesKHR>::type getMemoryFdPropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d = Dispatch() ) const;
16227 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16228 
16229     template<typename Dispatch = DispatchLoaderDefault>
16230     Result getMemoryHostPointerPropertiesEXT( vk::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, vk::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d = Dispatch() ) const;
16231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16232     template<typename Dispatch = DispatchLoaderDefault>
16233     ResultValueType<vk::MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( vk::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = Dispatch() ) const;
16234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16235 
16236 #ifdef VK_USE_PLATFORM_WIN32_KHR
16237     template<typename Dispatch = DispatchLoaderDefault>
16238     Result getMemoryWin32HandleKHR( const vk::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
16239 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16240     template<typename Dispatch = DispatchLoaderDefault>
16241     ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16242 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16243 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16244 
16245 #ifdef VK_USE_PLATFORM_WIN32_KHR
16246     template<typename Dispatch = DispatchLoaderDefault>
16247     Result getMemoryWin32HandleNV( vk::DeviceMemory memory, vk::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
16248 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16249     template<typename Dispatch = DispatchLoaderDefault>
16250     ResultValueType<HANDLE>::type getMemoryWin32HandleNV( vk::DeviceMemory memory, vk::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d = Dispatch() ) const;
16251 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16252 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16253 
16254 #ifdef VK_USE_PLATFORM_WIN32_KHR
16255     template<typename Dispatch = DispatchLoaderDefault>
16256     Result getMemoryWin32HandlePropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, vk::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d = Dispatch() ) const;
16257 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16258     template<typename Dispatch = DispatchLoaderDefault>
16259     ResultValueType<vk::MemoryWin32HandlePropertiesKHR>::type getMemoryWin32HandlePropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d = Dispatch() ) const;
16260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16261 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16262 
16263     template<typename Dispatch = DispatchLoaderDefault>
16264     Result getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, vk::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d = Dispatch() ) const;
16265 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16266     template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = DispatchLoaderDefault>
16267     typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16268     template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = DispatchLoaderDefault>
16269     typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
16270 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16271 
16272     template<typename Dispatch = DispatchLoaderDefault>
16273     Result getPerformanceParameterINTEL( vk::PerformanceParameterTypeINTEL parameter, vk::PerformanceValueINTEL* pValue, Dispatch const &d = Dispatch() ) const;
16274 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16275     template<typename Dispatch = DispatchLoaderDefault>
16276     ResultValueType<vk::PerformanceValueINTEL>::type getPerformanceParameterINTEL( vk::PerformanceParameterTypeINTEL parameter, Dispatch const &d = Dispatch() ) const;
16277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16278 
16279     template<typename Dispatch = DispatchLoaderDefault>
16280     Result getPipelineCacheData( vk::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d = Dispatch() ) const;
16281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16282     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16283     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( vk::PipelineCache pipelineCache, Dispatch const &d = Dispatch() ) const;
16284     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16285     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( vk::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
16286 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16287 
16288     template<typename Dispatch = DispatchLoaderDefault>
16289     Result getPipelineExecutableInternalRepresentationsKHR( const vk::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, vk::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const &d = Dispatch() ) const;
16290 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16291     template<typename Allocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = DispatchLoaderDefault>
16292     typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = Dispatch() ) const;
16293     template<typename Allocator = std::allocator<PipelineExecutableInternalRepresentationKHR>, typename Dispatch = DispatchLoaderDefault>
16294     typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
16295 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16296 
16297     template<typename Dispatch = DispatchLoaderDefault>
16298     Result getPipelineExecutablePropertiesKHR( const vk::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, vk::PipelineExecutablePropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
16299 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16300     template<typename Allocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16301     typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d = Dispatch() ) const;
16302     template<typename Allocator = std::allocator<PipelineExecutablePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16303     typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
16304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16305 
16306     template<typename Dispatch = DispatchLoaderDefault>
16307     Result getPipelineExecutableStatisticsKHR( const vk::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, vk::PipelineExecutableStatisticKHR* pStatistics, Dispatch const &d = Dispatch() ) const;
16308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16309     template<typename Allocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = DispatchLoaderDefault>
16310     typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = Dispatch() ) const;
16311     template<typename Allocator = std::allocator<PipelineExecutableStatisticKHR>, typename Dispatch = DispatchLoaderDefault>
16312     typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
16313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16314 
16315     template<typename Dispatch = DispatchLoaderDefault>
16316     Result getQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
16317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16318     template<typename T, typename Dispatch = DispatchLoaderDefault>
16319     Result getQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
16320 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16321 
16322     template<typename Dispatch = DispatchLoaderDefault>
16323     Result getRayTracingShaderGroupHandlesNV( vk::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const;
16324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16325     template<typename T, typename Dispatch = DispatchLoaderDefault>
16326     ResultValueType<void>::type getRayTracingShaderGroupHandlesNV( vk::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const;
16327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16328 
16329     template<typename Dispatch = DispatchLoaderDefault>
16330     Result getRefreshCycleDurationGOOGLE( vk::SwapchainKHR swapchain, vk::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d = Dispatch() ) const;
16331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16332     template<typename Dispatch = DispatchLoaderDefault>
16333     ResultValueType<vk::RefreshCycleDurationGOOGLE>::type getRefreshCycleDurationGOOGLE( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16334 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16335 
16336     template<typename Dispatch = DispatchLoaderDefault>
16337     void getRenderAreaGranularity( vk::RenderPass renderPass, vk::Extent2D* pGranularity, Dispatch const &d = Dispatch() ) const;
16338 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16339     template<typename Dispatch = DispatchLoaderDefault>
16340     vk::Extent2D getRenderAreaGranularity( vk::RenderPass renderPass, Dispatch const &d = Dispatch() ) const;
16341 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16342 
16343     template<typename Dispatch = DispatchLoaderDefault>
16344     Result getSemaphoreFdKHR( const vk::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
16345 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16346     template<typename Dispatch = DispatchLoaderDefault>
16347     ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
16348 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16349 
16350 #ifdef VK_USE_PLATFORM_WIN32_KHR
16351     template<typename Dispatch = DispatchLoaderDefault>
16352     Result getSemaphoreWin32HandleKHR( const vk::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
16353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16354     template<typename Dispatch = DispatchLoaderDefault>
16355     ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16357 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16358 
16359     template<typename Dispatch = DispatchLoaderDefault>
16360     Result getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d = Dispatch() ) const;
16361 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16362     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16363     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, Dispatch const &d = Dispatch() ) const;
16364     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16365     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const;
16366 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16367 
16368     template<typename Dispatch = DispatchLoaderDefault>
16369     Result getSwapchainCounterEXT( vk::SwapchainKHR swapchain, vk::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d = Dispatch() ) const;
16370 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16371     template<typename Dispatch = DispatchLoaderDefault>
16372     ResultValueType<uint64_t>::type getSwapchainCounterEXT( vk::SwapchainKHR swapchain, vk::SurfaceCounterFlagBitsEXT counter, Dispatch const &d = Dispatch() ) const;
16373 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16374 
16375     template<typename Dispatch = DispatchLoaderDefault>
16376     Result getSwapchainImagesKHR( vk::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, vk::Image* pSwapchainImages, Dispatch const &d = Dispatch() ) const;
16377 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16378     template<typename Allocator = std::allocator<Image>, typename Dispatch = DispatchLoaderDefault>
16379     typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16380     template<typename Allocator = std::allocator<Image>, typename Dispatch = DispatchLoaderDefault>
16381     typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( vk::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
16382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16383 
16384     template<typename Dispatch = DispatchLoaderDefault>
16385     Result getSwapchainStatusKHR( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16386 
16387     template<typename Dispatch = DispatchLoaderDefault>
16388     Result getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d = Dispatch() ) const;
16389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16390     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16391     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, Dispatch const &d = Dispatch() ) const;
16392     template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
16393     typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
16394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16395 
16396     template<typename Dispatch = DispatchLoaderDefault>
16397     Result importFenceFdKHR( const vk::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d = Dispatch() ) const;
16398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16399     template<typename Dispatch = DispatchLoaderDefault>
16400     ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d = Dispatch() ) const;
16401 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16402 
16403 #ifdef VK_USE_PLATFORM_WIN32_KHR
16404     template<typename Dispatch = DispatchLoaderDefault>
16405     Result importFenceWin32HandleKHR( const vk::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16406 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16407     template<typename Dispatch = DispatchLoaderDefault>
16408     ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16410 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16411 
16412     template<typename Dispatch = DispatchLoaderDefault>
16413     Result importSemaphoreFdKHR( const vk::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d = Dispatch() ) const;
16414 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16415     template<typename Dispatch = DispatchLoaderDefault>
16416     ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d = Dispatch() ) const;
16417 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16418 
16419 #ifdef VK_USE_PLATFORM_WIN32_KHR
16420     template<typename Dispatch = DispatchLoaderDefault>
16421     Result importSemaphoreWin32HandleKHR( const vk::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16423     template<typename Dispatch = DispatchLoaderDefault>
16424     ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
16425 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16426 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16427 
16428     template<typename Dispatch = DispatchLoaderDefault>
16429     Result initializePerformanceApiINTEL( const vk::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d = Dispatch() ) const;
16430 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16431     template<typename Dispatch = DispatchLoaderDefault>
16432     ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d = Dispatch() ) const;
16433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16434 
16435     template<typename Dispatch = DispatchLoaderDefault>
16436     Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const vk::MappedMemoryRange* pMemoryRanges, Dispatch const &d = Dispatch() ) const;
16437 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16438     template<typename Dispatch = DispatchLoaderDefault>
16439     ResultValueType<void>::type invalidateMappedMemoryRanges( ArrayProxy<const vk::MappedMemoryRange> memoryRanges, Dispatch const &d = Dispatch() ) const;
16440 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16441 
16442     template<typename Dispatch = DispatchLoaderDefault>
16443     Result mapMemory( vk::DeviceMemory memory, vk::DeviceSize offset, vk::DeviceSize size, vk::MemoryMapFlags flags, void** ppData, Dispatch const &d = Dispatch() ) const;
16444 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16445     template<typename Dispatch = DispatchLoaderDefault>
16446     ResultValueType<void*>::type mapMemory( vk::DeviceMemory memory, vk::DeviceSize offset, vk::DeviceSize size, vk::MemoryMapFlags flags = MemoryMapFlags(), Dispatch const &d = Dispatch() ) const;
16447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16448 
16449     template<typename Dispatch = DispatchLoaderDefault>
16450     Result mergePipelineCaches( vk::PipelineCache dstCache, uint32_t srcCacheCount, const vk::PipelineCache* pSrcCaches, Dispatch const &d = Dispatch() ) const;
16451 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16452     template<typename Dispatch = DispatchLoaderDefault>
16453     ResultValueType<void>::type mergePipelineCaches( vk::PipelineCache dstCache, ArrayProxy<const vk::PipelineCache> srcCaches, Dispatch const &d = Dispatch() ) const;
16454 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16455 
16456     template<typename Dispatch = DispatchLoaderDefault>
16457     Result mergeValidationCachesEXT( vk::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const vk::ValidationCacheEXT* pSrcCaches, Dispatch const &d = Dispatch() ) const;
16458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16459     template<typename Dispatch = DispatchLoaderDefault>
16460     ResultValueType<void>::type mergeValidationCachesEXT( vk::ValidationCacheEXT dstCache, ArrayProxy<const vk::ValidationCacheEXT> srcCaches, Dispatch const &d = Dispatch() ) const;
16461 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16462 
16463     template<typename Dispatch = DispatchLoaderDefault>
16464     Result registerEventEXT( const vk::DeviceEventInfoEXT* pDeviceEventInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d = Dispatch() ) const;
16465 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16466     template<typename Dispatch = DispatchLoaderDefault>
16467     ResultValueType<vk::Fence>::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
16468 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16469 
16470     template<typename Dispatch = DispatchLoaderDefault>
16471     Result registerDisplayEventEXT( vk::DisplayKHR display, const vk::DisplayEventInfoEXT* pDisplayEventInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d = Dispatch() ) const;
16472 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16473     template<typename Dispatch = DispatchLoaderDefault>
16474     ResultValueType<vk::Fence>::type registerDisplayEventEXT( vk::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
16475 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16476 
16477     template<typename Dispatch = DispatchLoaderDefault>
16478     Result registerObjectsNVX( vk::ObjectTableNVX objectTable, uint32_t objectCount, const vk::ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d = Dispatch() ) const;
16479 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16480     template<typename Dispatch = DispatchLoaderDefault>
16481     ResultValueType<void>::type registerObjectsNVX( vk::ObjectTableNVX objectTable, ArrayProxy<const vk::ObjectTableEntryNVX* const> pObjectTableEntries, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d = Dispatch() ) const;
16482 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16483 
16484 #ifdef VK_USE_PLATFORM_WIN32_KHR
16485 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16486     template<typename Dispatch = DispatchLoaderDefault>
16487     Result releaseFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16488 #else
16489     template<typename Dispatch = DispatchLoaderDefault>
16490     ResultValueType<void>::type releaseFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
16491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16492 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16493 
16494 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16495     template<typename Dispatch = DispatchLoaderDefault>
16496     Result releasePerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
16497 #else
16498     template<typename Dispatch = DispatchLoaderDefault>
16499     ResultValueType<void>::type releasePerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
16500 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16501 
16502 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16503     template<typename Dispatch = DispatchLoaderDefault>
16504     Result resetCommandPool( vk::CommandPool commandPool, vk::CommandPoolResetFlags flags, Dispatch const &d = Dispatch() ) const;
16505 #else
16506     template<typename Dispatch = DispatchLoaderDefault>
16507     ResultValueType<void>::type resetCommandPool( vk::CommandPool commandPool, vk::CommandPoolResetFlags flags, Dispatch const &d = Dispatch() ) const;
16508 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16509 
16510 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16511     template<typename Dispatch = DispatchLoaderDefault>
16512     Result resetDescriptorPool( vk::DescriptorPool descriptorPool, vk::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = Dispatch() ) const;
16513 #else
16514     template<typename Dispatch = DispatchLoaderDefault>
16515     ResultValueType<void>::type resetDescriptorPool( vk::DescriptorPool descriptorPool, vk::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = Dispatch() ) const;
16516 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16517 
16518 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16519     template<typename Dispatch = DispatchLoaderDefault>
16520     Result resetEvent( vk::Event event, Dispatch const &d = Dispatch() ) const;
16521 #else
16522     template<typename Dispatch = DispatchLoaderDefault>
16523     ResultValueType<void>::type resetEvent( vk::Event event, Dispatch const &d = Dispatch() ) const;
16524 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16525 
16526     template<typename Dispatch = DispatchLoaderDefault>
16527     Result resetFences( uint32_t fenceCount, const vk::Fence* pFences, Dispatch const &d = Dispatch() ) const;
16528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16529     template<typename Dispatch = DispatchLoaderDefault>
16530     ResultValueType<void>::type resetFences( ArrayProxy<const vk::Fence> fences, Dispatch const &d = Dispatch() ) const;
16531 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16532 
16533     template<typename Dispatch = DispatchLoaderDefault>
16534     void resetQueryPoolEXT( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = Dispatch() ) const;
16535 
16536     template<typename Dispatch = DispatchLoaderDefault>
16537     Result setDebugUtilsObjectNameEXT( const vk::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d = Dispatch() ) const;
16538 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16539     template<typename Dispatch = DispatchLoaderDefault>
16540     ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d = Dispatch() ) const;
16541 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16542 
16543     template<typename Dispatch = DispatchLoaderDefault>
16544     Result setDebugUtilsObjectTagEXT( const vk::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d = Dispatch() ) const;
16545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16546     template<typename Dispatch = DispatchLoaderDefault>
16547     ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d = Dispatch() ) const;
16548 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16549 
16550 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
16551     template<typename Dispatch = DispatchLoaderDefault>
16552     Result setEvent( vk::Event event, Dispatch const &d = Dispatch() ) const;
16553 #else
16554     template<typename Dispatch = DispatchLoaderDefault>
16555     ResultValueType<void>::type setEvent( vk::Event event, Dispatch const &d = Dispatch() ) const;
16556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16557 
16558     template<typename Dispatch = DispatchLoaderDefault>
16559     void setHdrMetadataEXT( uint32_t swapchainCount, const vk::SwapchainKHR* pSwapchains, const vk::HdrMetadataEXT* pMetadata, Dispatch const &d = Dispatch() ) const;
16560 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16561     template<typename Dispatch = DispatchLoaderDefault>
16562     void setHdrMetadataEXT( ArrayProxy<const vk::SwapchainKHR> swapchains, ArrayProxy<const vk::HdrMetadataEXT> metadata, Dispatch const &d = Dispatch() ) const;
16563 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16564 
16565     template<typename Dispatch = DispatchLoaderDefault>
16566     void setLocalDimmingAMD( vk::SwapchainKHR swapChain, vk::Bool32 localDimmingEnable, Dispatch const &d = Dispatch() ) const;
16567 
16568     template<typename Dispatch = DispatchLoaderDefault>
16569     void trimCommandPool( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = Dispatch() ) const;
16570 
16571     template<typename Dispatch = DispatchLoaderDefault>
16572     void trimCommandPoolKHR( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = Dispatch() ) const;
16573 
16574     template<typename Dispatch = DispatchLoaderDefault>
16575     void uninitializePerformanceApiINTEL(Dispatch const &d = Dispatch() ) const;
16576 
16577     template<typename Dispatch = DispatchLoaderDefault>
16578     void unmapMemory( vk::DeviceMemory memory, Dispatch const &d = Dispatch() ) const;
16579 
16580     template<typename Dispatch = DispatchLoaderDefault>
16581     Result unregisterObjectsNVX( vk::ObjectTableNVX objectTable, uint32_t objectCount, const vk::ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d = Dispatch() ) const;
16582 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16583     template<typename Dispatch = DispatchLoaderDefault>
16584     ResultValueType<void>::type unregisterObjectsNVX( vk::ObjectTableNVX objectTable, ArrayProxy<const vk::ObjectEntryTypeNVX> objectEntryTypes, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d = Dispatch() ) const;
16585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16586 
16587     template<typename Dispatch = DispatchLoaderDefault>
16588     void updateDescriptorSetWithTemplate( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = Dispatch() ) const;
16589 
16590     template<typename Dispatch = DispatchLoaderDefault>
16591     void updateDescriptorSetWithTemplateKHR( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = Dispatch() ) const;
16592 
16593     template<typename Dispatch = DispatchLoaderDefault>
16594     void updateDescriptorSets( uint32_t descriptorWriteCount, const vk::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const vk::CopyDescriptorSet* pDescriptorCopies, Dispatch const &d = Dispatch() ) const;
16595 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16596     template<typename Dispatch = DispatchLoaderDefault>
16597     void updateDescriptorSets( ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites, ArrayProxy<const vk::CopyDescriptorSet> descriptorCopies, Dispatch const &d = Dispatch() ) const;
16598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16599 
16600     template<typename Dispatch = DispatchLoaderDefault>
16601     Result waitForFences( uint32_t fenceCount, const vk::Fence* pFences, vk::Bool32 waitAll, uint64_t timeout, Dispatch const &d = Dispatch() ) const;
16602 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16603     template<typename Dispatch = DispatchLoaderDefault>
16604     Result waitForFences( ArrayProxy<const vk::Fence> fences, vk::Bool32 waitAll, uint64_t timeout, Dispatch const &d = Dispatch() ) const;
16605 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16606 
operator VkDevice() const16607     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const
16608     {
16609       return m_device;
16610     }
16611 
operator bool() const16612     explicit operator bool() const
16613     {
16614       return m_device != VK_NULL_HANDLE;
16615     }
16616 
operator !() const16617     bool operator!() const
16618     {
16619       return m_device == VK_NULL_HANDLE;
16620     }
16621 
16622   private:
16623     VkDevice m_device;
16624   };
16625   static_assert( sizeof( Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
16626 
16627   template <>
16628   struct cpp_type<ObjectType::eDevice>
16629   {
16630     using type = Device;
16631   };
16632 
16633   class DisplayModeKHR
16634   {
16635   public:
16636     using CType = VkDisplayModeKHR;
16637 
16638     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayModeKHR;
16639 
16640   public:
DisplayModeKHR()16641     VULKAN_HPP_CONSTEXPR DisplayModeKHR()
16642       : m_displayModeKHR(VK_NULL_HANDLE)
16643     {}
16644 
DisplayModeKHR(std::nullptr_t)16645     VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t )
16646       : m_displayModeKHR(VK_NULL_HANDLE)
16647     {}
16648 
DisplayModeKHR(VkDisplayModeKHR displayModeKHR)16649     VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR )
16650       : m_displayModeKHR( displayModeKHR )
16651     {}
16652 
16653 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkDisplayModeKHR displayModeKHR)16654     DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR)
16655     {
16656       m_displayModeKHR = displayModeKHR;
16657       return *this;
16658     }
16659 #endif
16660 
operator =(std::nullptr_t)16661     DisplayModeKHR & operator=( std::nullptr_t )
16662     {
16663       m_displayModeKHR = VK_NULL_HANDLE;
16664       return *this;
16665     }
16666 
operator ==(DisplayModeKHR const & rhs) const16667     bool operator==( DisplayModeKHR const & rhs ) const
16668     {
16669       return m_displayModeKHR == rhs.m_displayModeKHR;
16670     }
16671 
operator !=(DisplayModeKHR const & rhs) const16672     bool operator!=(DisplayModeKHR const & rhs ) const
16673     {
16674       return m_displayModeKHR != rhs.m_displayModeKHR;
16675     }
16676 
operator <(DisplayModeKHR const & rhs) const16677     bool operator<(DisplayModeKHR const & rhs ) const
16678     {
16679       return m_displayModeKHR < rhs.m_displayModeKHR;
16680     }
16681 
operator VkDisplayModeKHR() const16682     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const
16683     {
16684       return m_displayModeKHR;
16685     }
16686 
operator bool() const16687     explicit operator bool() const
16688     {
16689       return m_displayModeKHR != VK_NULL_HANDLE;
16690     }
16691 
operator !() const16692     bool operator!() const
16693     {
16694       return m_displayModeKHR == VK_NULL_HANDLE;
16695     }
16696 
16697   private:
16698     VkDisplayModeKHR m_displayModeKHR;
16699   };
16700   static_assert( sizeof( DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
16701 
16702   template <>
16703   struct cpp_type<ObjectType::eDisplayModeKHR>
16704   {
16705     using type = DisplayModeKHR;
16706   };
16707 
16708 #ifndef VULKAN_HPP_NO_SMART_HANDLE
16709   template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
16710   using UniqueDevice = UniqueHandle<Device, DispatchLoaderDefault>;
16711 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
16712 
16713   class PhysicalDevice
16714   {
16715   public:
16716     using CType = VkPhysicalDevice;
16717 
16718     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePhysicalDevice;
16719 
16720   public:
PhysicalDevice()16721     VULKAN_HPP_CONSTEXPR PhysicalDevice()
16722       : m_physicalDevice(VK_NULL_HANDLE)
16723     {}
16724 
PhysicalDevice(std::nullptr_t)16725     VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t )
16726       : m_physicalDevice(VK_NULL_HANDLE)
16727     {}
16728 
PhysicalDevice(VkPhysicalDevice physicalDevice)16729     VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice )
16730       : m_physicalDevice( physicalDevice )
16731     {}
16732 
16733 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkPhysicalDevice physicalDevice)16734     PhysicalDevice & operator=(VkPhysicalDevice physicalDevice)
16735     {
16736       m_physicalDevice = physicalDevice;
16737       return *this;
16738     }
16739 #endif
16740 
operator =(std::nullptr_t)16741     PhysicalDevice & operator=( std::nullptr_t )
16742     {
16743       m_physicalDevice = VK_NULL_HANDLE;
16744       return *this;
16745     }
16746 
operator ==(PhysicalDevice const & rhs) const16747     bool operator==( PhysicalDevice const & rhs ) const
16748     {
16749       return m_physicalDevice == rhs.m_physicalDevice;
16750     }
16751 
operator !=(PhysicalDevice const & rhs) const16752     bool operator!=(PhysicalDevice const & rhs ) const
16753     {
16754       return m_physicalDevice != rhs.m_physicalDevice;
16755     }
16756 
operator <(PhysicalDevice const & rhs) const16757     bool operator<(PhysicalDevice const & rhs ) const
16758     {
16759       return m_physicalDevice < rhs.m_physicalDevice;
16760     }
16761 
16762 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
16763     template<typename Dispatch = DispatchLoaderDefault>
16764     Result acquireXlibDisplayEXT( Display* dpy, vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
16765 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16766     template<typename Dispatch = DispatchLoaderDefault>
16767     ResultValueType<Display>::type acquireXlibDisplayEXT( vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
16768 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16769 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
16770 
16771     template<typename Dispatch = DispatchLoaderDefault>
16772     Result createDevice( const vk::DeviceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Device* pDevice, Dispatch const &d = Dispatch() ) const;
16773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16774     template<typename Dispatch = DispatchLoaderDefault>
16775     ResultValueType<vk::Device>::type createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
16776 #ifndef VULKAN_HPP_NO_SMART_HANDLE
16777     template<typename Dispatch = DispatchLoaderDefault>
16778     typename ResultValueType<UniqueHandle<Device,Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
16779 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
16780 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16781 
16782     template<typename Dispatch = DispatchLoaderDefault>
16783     Result createDisplayModeKHR( vk::DisplayKHR display, const vk::DisplayModeCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DisplayModeKHR* pMode, Dispatch const &d = Dispatch() ) const;
16784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16785     template<typename Dispatch = DispatchLoaderDefault>
16786     ResultValueType<vk::DisplayModeKHR>::type createDisplayModeKHR( vk::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
16787 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16788 
16789     template<typename Dispatch = DispatchLoaderDefault>
16790     Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, vk::ExtensionProperties* pProperties, Dispatch const &d = Dispatch() ) const;
16791 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16792     template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
16793     typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = Dispatch() ) const;
16794     template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
16795     typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const;
16796 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16797 
16798     template<typename Dispatch = DispatchLoaderDefault>
16799     Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, vk::LayerProperties* pProperties, Dispatch const &d = Dispatch() ) const;
16800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16801     template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
16802     typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Dispatch const &d = Dispatch() ) const;
16803     template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
16804     typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
16805 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16806 
16807     template<typename Dispatch = DispatchLoaderDefault>
16808     Result getDisplayModeProperties2KHR( vk::DisplayKHR display, uint32_t* pPropertyCount, vk::DisplayModeProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
16809 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16810     template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16811     typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
16812     template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16813     typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( vk::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
16814 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16815 
16816     template<typename Dispatch = DispatchLoaderDefault>
16817     Result getDisplayModePropertiesKHR( vk::DisplayKHR display, uint32_t* pPropertyCount, vk::DisplayModePropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
16818 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16819     template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16820     typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
16821     template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16822     typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( vk::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
16823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16824 
16825     template<typename Dispatch = DispatchLoaderDefault>
16826     Result getDisplayPlaneCapabilities2KHR( const vk::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, vk::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d = Dispatch() ) const;
16827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16828     template<typename Dispatch = DispatchLoaderDefault>
16829     ResultValueType<vk::DisplayPlaneCapabilities2KHR>::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d = Dispatch() ) const;
16830 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16831 
16832     template<typename Dispatch = DispatchLoaderDefault>
16833     Result getDisplayPlaneCapabilitiesKHR( vk::DisplayModeKHR mode, uint32_t planeIndex, vk::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d = Dispatch() ) const;
16834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16835     template<typename Dispatch = DispatchLoaderDefault>
16836     ResultValueType<vk::DisplayPlaneCapabilitiesKHR>::type getDisplayPlaneCapabilitiesKHR( vk::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d = Dispatch() ) const;
16837 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16838 
16839     template<typename Dispatch = DispatchLoaderDefault>
16840     Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, vk::DisplayKHR* pDisplays, Dispatch const &d = Dispatch() ) const;
16841 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16842     template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = DispatchLoaderDefault>
16843     typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d = Dispatch() ) const;
16844     template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = DispatchLoaderDefault>
16845     typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const;
16846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16847 
16848     template<typename Dispatch = DispatchLoaderDefault>
16849     Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, vk::TimeDomainEXT* pTimeDomains, Dispatch const &d = Dispatch() ) const;
16850 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16851     template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = DispatchLoaderDefault>
16852     typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Dispatch const &d = Dispatch() ) const;
16853     template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = DispatchLoaderDefault>
16854     typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const;
16855 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16856 
16857     template<typename Dispatch = DispatchLoaderDefault>
16858     Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, vk::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d = Dispatch() ) const;
16859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16860     template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = DispatchLoaderDefault>
16861     typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Dispatch const &d = Dispatch() ) const;
16862     template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = DispatchLoaderDefault>
16863     typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
16864 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16865 
16866     template<typename Dispatch = DispatchLoaderDefault>
16867     Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, vk::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
16868 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16869     template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16870     typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Dispatch const &d = Dispatch() ) const;
16871     template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16872     typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
16873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16874 
16875     template<typename Dispatch = DispatchLoaderDefault>
16876     Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, vk::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
16877 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16878     template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16879     typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Dispatch const &d = Dispatch() ) const;
16880     template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16881     typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
16882 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16883 
16884     template<typename Dispatch = DispatchLoaderDefault>
16885     Result getDisplayProperties2KHR( uint32_t* pPropertyCount, vk::DisplayProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
16886 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16887     template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16888     typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Dispatch const &d = Dispatch() ) const;
16889     template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
16890     typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
16891 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16892 
16893     template<typename Dispatch = DispatchLoaderDefault>
16894     Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, vk::DisplayPropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
16895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16896     template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16897     typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Dispatch const &d = Dispatch() ) const;
16898     template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
16899     typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
16900 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16901 
16902     template<typename Dispatch = DispatchLoaderDefault>
16903     void getExternalBufferProperties( const vk::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, vk::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = Dispatch() ) const;
16904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16905     template<typename Dispatch = DispatchLoaderDefault>
16906     vk::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = Dispatch() ) const;
16907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16908 
16909     template<typename Dispatch = DispatchLoaderDefault>
16910     void getExternalBufferPropertiesKHR( const vk::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, vk::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = Dispatch() ) const;
16911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16912     template<typename Dispatch = DispatchLoaderDefault>
16913     vk::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = Dispatch() ) const;
16914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16915 
16916     template<typename Dispatch = DispatchLoaderDefault>
16917     void getExternalFenceProperties( const vk::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, vk::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = Dispatch() ) const;
16918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16919     template<typename Dispatch = DispatchLoaderDefault>
16920     vk::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = Dispatch() ) const;
16921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16922 
16923     template<typename Dispatch = DispatchLoaderDefault>
16924     void getExternalFencePropertiesKHR( const vk::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, vk::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = Dispatch() ) const;
16925 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16926     template<typename Dispatch = DispatchLoaderDefault>
16927     vk::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = Dispatch() ) const;
16928 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16929 
16930     template<typename Dispatch = DispatchLoaderDefault>
16931     Result getExternalImageFormatPropertiesNV( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ExternalMemoryHandleTypeFlagsNV externalHandleType, vk::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d = Dispatch() ) const;
16932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16933     template<typename Dispatch = DispatchLoaderDefault>
16934     ResultValueType<vk::ExternalImageFormatPropertiesNV>::type getExternalImageFormatPropertiesNV( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d = Dispatch() ) const;
16935 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16936 
16937     template<typename Dispatch = DispatchLoaderDefault>
16938     void getExternalSemaphoreProperties( const vk::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, vk::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = Dispatch() ) const;
16939 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16940     template<typename Dispatch = DispatchLoaderDefault>
16941     vk::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = Dispatch() ) const;
16942 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16943 
16944     template<typename Dispatch = DispatchLoaderDefault>
16945     void getExternalSemaphorePropertiesKHR( const vk::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, vk::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = Dispatch() ) const;
16946 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16947     template<typename Dispatch = DispatchLoaderDefault>
16948     vk::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = Dispatch() ) const;
16949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16950 
16951     template<typename Dispatch = DispatchLoaderDefault>
16952     void getFeatures( vk::PhysicalDeviceFeatures* pFeatures, Dispatch const &d = Dispatch() ) const;
16953 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16954     template<typename Dispatch = DispatchLoaderDefault>
16955     vk::PhysicalDeviceFeatures getFeatures(Dispatch const &d = Dispatch() ) const;
16956 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16957 
16958     template<typename Dispatch = DispatchLoaderDefault>
16959     void getFeatures2( vk::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = Dispatch() ) const;
16960 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16961     template<typename Dispatch = DispatchLoaderDefault>
16962     vk::PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d = Dispatch() ) const;
16963     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16964     StructureChain<X, Y, Z...> getFeatures2(Dispatch const &d = Dispatch() ) const;
16965 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16966 
16967     template<typename Dispatch = DispatchLoaderDefault>
16968     void getFeatures2KHR( vk::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = Dispatch() ) const;
16969 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16970     template<typename Dispatch = DispatchLoaderDefault>
16971     vk::PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d = Dispatch() ) const;
16972     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16973     StructureChain<X, Y, Z...> getFeatures2KHR(Dispatch const &d = Dispatch() ) const;
16974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16975 
16976     template<typename Dispatch = DispatchLoaderDefault>
16977     void getFormatProperties( vk::Format format, vk::FormatProperties* pFormatProperties, Dispatch const &d = Dispatch() ) const;
16978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16979     template<typename Dispatch = DispatchLoaderDefault>
16980     vk::FormatProperties getFormatProperties( vk::Format format, Dispatch const &d = Dispatch() ) const;
16981 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16982 
16983     template<typename Dispatch = DispatchLoaderDefault>
16984     void getFormatProperties2( vk::Format format, vk::FormatProperties2* pFormatProperties, Dispatch const &d = Dispatch() ) const;
16985 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16986     template<typename Dispatch = DispatchLoaderDefault>
16987     vk::FormatProperties2 getFormatProperties2( vk::Format format, Dispatch const &d = Dispatch() ) const;
16988     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16989     StructureChain<X, Y, Z...> getFormatProperties2( vk::Format format, Dispatch const &d = Dispatch() ) const;
16990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
16991 
16992     template<typename Dispatch = DispatchLoaderDefault>
16993     void getFormatProperties2KHR( vk::Format format, vk::FormatProperties2* pFormatProperties, Dispatch const &d = Dispatch() ) const;
16994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16995     template<typename Dispatch = DispatchLoaderDefault>
16996     vk::FormatProperties2 getFormatProperties2KHR( vk::Format format, Dispatch const &d = Dispatch() ) const;
16997     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
16998     StructureChain<X, Y, Z...> getFormatProperties2KHR( vk::Format format, Dispatch const &d = Dispatch() ) const;
16999 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17000 
17001     template<typename Dispatch = DispatchLoaderDefault>
17002     void getGeneratedCommandsPropertiesNVX( vk::DeviceGeneratedCommandsFeaturesNVX* pFeatures, vk::DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d = Dispatch() ) const;
17003 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17004     template<typename Dispatch = DispatchLoaderDefault>
17005     vk::DeviceGeneratedCommandsLimitsNVX getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d = Dispatch() ) const;
17006 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17007 
17008     template<typename Dispatch = DispatchLoaderDefault>
17009     Result getImageFormatProperties( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ImageFormatProperties* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
17010 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17011     template<typename Dispatch = DispatchLoaderDefault>
17012     ResultValueType<vk::ImageFormatProperties>::type getImageFormatProperties( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, Dispatch const &d = Dispatch() ) const;
17013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17014 
17015     template<typename Dispatch = DispatchLoaderDefault>
17016     Result getImageFormatProperties2( const vk::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, vk::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
17017 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17018     template<typename Dispatch = DispatchLoaderDefault>
17019     ResultValueType<vk::ImageFormatProperties2>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
17020     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17021     typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
17022 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17023 
17024     template<typename Dispatch = DispatchLoaderDefault>
17025     Result getImageFormatProperties2KHR( const vk::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, vk::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
17026 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17027     template<typename Dispatch = DispatchLoaderDefault>
17028     ResultValueType<vk::ImageFormatProperties2>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
17029     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17030     typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
17031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17032 
17033     template<typename Dispatch = DispatchLoaderDefault>
17034     void getMemoryProperties( vk::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
17035 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17036     template<typename Dispatch = DispatchLoaderDefault>
17037     vk::PhysicalDeviceMemoryProperties getMemoryProperties(Dispatch const &d = Dispatch() ) const;
17038 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17039 
17040     template<typename Dispatch = DispatchLoaderDefault>
17041     void getMemoryProperties2( vk::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
17042 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17043     template<typename Dispatch = DispatchLoaderDefault>
17044     vk::PhysicalDeviceMemoryProperties2 getMemoryProperties2(Dispatch const &d = Dispatch() ) const;
17045     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17046     StructureChain<X, Y, Z...> getMemoryProperties2(Dispatch const &d = Dispatch() ) const;
17047 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17048 
17049     template<typename Dispatch = DispatchLoaderDefault>
17050     void getMemoryProperties2KHR( vk::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
17051 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17052     template<typename Dispatch = DispatchLoaderDefault>
17053     vk::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR(Dispatch const &d = Dispatch() ) const;
17054     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17055     StructureChain<X, Y, Z...> getMemoryProperties2KHR(Dispatch const &d = Dispatch() ) const;
17056 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17057 
17058     template<typename Dispatch = DispatchLoaderDefault>
17059     void getMultisamplePropertiesEXT( vk::SampleCountFlagBits samples, vk::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d = Dispatch() ) const;
17060 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17061     template<typename Dispatch = DispatchLoaderDefault>
17062     vk::MultisamplePropertiesEXT getMultisamplePropertiesEXT( vk::SampleCountFlagBits samples, Dispatch const &d = Dispatch() ) const;
17063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17064 
17065     template<typename Dispatch = DispatchLoaderDefault>
17066     Result getPresentRectanglesKHR( vk::SurfaceKHR surface, uint32_t* pRectCount, vk::Rect2D* pRects, Dispatch const &d = Dispatch() ) const;
17067 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17068     template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = DispatchLoaderDefault>
17069     typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17070     template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = DispatchLoaderDefault>
17071     typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
17072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17073 
17074     template<typename Dispatch = DispatchLoaderDefault>
17075     void getProperties( vk::PhysicalDeviceProperties* pProperties, Dispatch const &d = Dispatch() ) const;
17076 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17077     template<typename Dispatch = DispatchLoaderDefault>
17078     vk::PhysicalDeviceProperties getProperties(Dispatch const &d = Dispatch() ) const;
17079 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17080 
17081     template<typename Dispatch = DispatchLoaderDefault>
17082     void getProperties2( vk::PhysicalDeviceProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
17083 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17084     template<typename Dispatch = DispatchLoaderDefault>
17085     vk::PhysicalDeviceProperties2 getProperties2(Dispatch const &d = Dispatch() ) const;
17086     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17087     StructureChain<X, Y, Z...> getProperties2(Dispatch const &d = Dispatch() ) const;
17088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17089 
17090     template<typename Dispatch = DispatchLoaderDefault>
17091     void getProperties2KHR( vk::PhysicalDeviceProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
17092 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17093     template<typename Dispatch = DispatchLoaderDefault>
17094     vk::PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d = Dispatch() ) const;
17095     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17096     StructureChain<X, Y, Z...> getProperties2KHR(Dispatch const &d = Dispatch() ) const;
17097 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17098 
17099     template<typename Dispatch = DispatchLoaderDefault>
17100     void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
17101 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17102     template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = DispatchLoaderDefault>
17103     std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Dispatch const &d = Dispatch() ) const;
17104     template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = DispatchLoaderDefault>
17105     std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
17106 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17107 
17108     template<typename Dispatch = DispatchLoaderDefault>
17109     void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
17110 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17111     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
17112     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Dispatch const &d = Dispatch() ) const;
17113     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
17114     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
17115     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
17116     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Dispatch const &d = Dispatch() ) const;
17117     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
17118     std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
17119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17120 
17121     template<typename Dispatch = DispatchLoaderDefault>
17122     void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
17123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17124     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
17125     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = Dispatch() ) const;
17126     template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
17127     std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
17128     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
17129     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = Dispatch() ) const;
17130     template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
17131     std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
17132 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17133 
17134     template<typename Dispatch = DispatchLoaderDefault>
17135     void getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, uint32_t* pPropertyCount, vk::SparseImageFormatProperties* pProperties, Dispatch const &d = Dispatch() ) const;
17136 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17137     template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = DispatchLoaderDefault>
17138     std::vector<SparseImageFormatProperties,Allocator> getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, Dispatch const &d = Dispatch() ) const;
17139     template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = DispatchLoaderDefault>
17140     std::vector<SparseImageFormatProperties,Allocator> getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, Allocator const& vectorAllocator, Dispatch const &d ) const;
17141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17142 
17143     template<typename Dispatch = DispatchLoaderDefault>
17144     void getSparseImageFormatProperties2( const vk::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, vk::SparseImageFormatProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
17145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17146     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
17147     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = Dispatch() ) const;
17148     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
17149     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
17150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17151 
17152     template<typename Dispatch = DispatchLoaderDefault>
17153     void getSparseImageFormatProperties2KHR( const vk::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, vk::SparseImageFormatProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
17154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17155     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
17156     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = Dispatch() ) const;
17157     template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
17158     std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
17159 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17160 
17161     template<typename Dispatch = DispatchLoaderDefault>
17162     Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, vk::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d = Dispatch() ) const;
17163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17164     template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = DispatchLoaderDefault>
17165     typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d = Dispatch() ) const;
17166     template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = DispatchLoaderDefault>
17167     typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
17168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17169 
17170     template<typename Dispatch = DispatchLoaderDefault>
17171     Result getSurfaceCapabilities2EXT( vk::SurfaceKHR surface, vk::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
17172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17173     template<typename Dispatch = DispatchLoaderDefault>
17174     ResultValueType<vk::SurfaceCapabilities2EXT>::type getSurfaceCapabilities2EXT( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17175 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17176 
17177     template<typename Dispatch = DispatchLoaderDefault>
17178     Result getSurfaceCapabilities2KHR( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, vk::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
17179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17180     template<typename Dispatch = DispatchLoaderDefault>
17181     ResultValueType<vk::SurfaceCapabilities2KHR>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
17182     template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
17183     typename ResultValueType<StructureChain<X, Y, Z...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
17184 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17185 
17186     template<typename Dispatch = DispatchLoaderDefault>
17187     Result getSurfaceCapabilitiesKHR( vk::SurfaceKHR surface, vk::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
17188 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17189     template<typename Dispatch = DispatchLoaderDefault>
17190     ResultValueType<vk::SurfaceCapabilitiesKHR>::type getSurfaceCapabilitiesKHR( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17192 
17193     template<typename Dispatch = DispatchLoaderDefault>
17194     Result getSurfaceFormats2KHR( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, vk::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d = Dispatch() ) const;
17195 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17196     template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = DispatchLoaderDefault>
17197     typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
17198     template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = DispatchLoaderDefault>
17199     typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
17200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17201 
17202     template<typename Dispatch = DispatchLoaderDefault>
17203     Result getSurfaceFormatsKHR( vk::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, vk::SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d = Dispatch() ) const;
17204 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17205     template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = DispatchLoaderDefault>
17206     typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17207     template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = DispatchLoaderDefault>
17208     typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
17209 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17210 
17211 #ifdef VK_USE_PLATFORM_WIN32_KHR
17212     template<typename Dispatch = DispatchLoaderDefault>
17213     Result getSurfacePresentModes2EXT( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, vk::PresentModeKHR* pPresentModes, Dispatch const &d = Dispatch() ) const;
17214 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17215     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
17216     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
17217     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
17218     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
17219 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17220 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
17221 
17222     template<typename Dispatch = DispatchLoaderDefault>
17223     Result getSurfacePresentModesKHR( vk::SurfaceKHR surface, uint32_t* pPresentModeCount, vk::PresentModeKHR* pPresentModes, Dispatch const &d = Dispatch() ) const;
17224 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17225     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
17226     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17227     template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
17228     typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
17229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17230 
17231     template<typename Dispatch = DispatchLoaderDefault>
17232     Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, vk::SurfaceKHR surface, vk::Bool32* pSupported, Dispatch const &d = Dispatch() ) const;
17233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17234     template<typename Dispatch = DispatchLoaderDefault>
17235     ResultValueType<vk::Bool32>::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, vk::SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
17236 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17237 
17238 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
17239     template<typename Dispatch = DispatchLoaderDefault>
17240     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d = Dispatch() ) const;
17241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17242     template<typename Dispatch = DispatchLoaderDefault>
17243     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d = Dispatch() ) const;
17244 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17245 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
17246 
17247 #ifdef VK_USE_PLATFORM_WIN32_KHR
17248     template<typename Dispatch = DispatchLoaderDefault>
17249     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d = Dispatch() ) const;
17250 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
17251 
17252 #ifdef VK_USE_PLATFORM_XCB_KHR
17253     template<typename Dispatch = DispatchLoaderDefault>
17254     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d = Dispatch() ) const;
17255 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17256     template<typename Dispatch = DispatchLoaderDefault>
17257     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d = Dispatch() ) const;
17258 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17259 #endif /*VK_USE_PLATFORM_XCB_KHR*/
17260 
17261 #ifdef VK_USE_PLATFORM_XLIB_KHR
17262     template<typename Dispatch = DispatchLoaderDefault>
17263     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d = Dispatch() ) const;
17264 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17265     template<typename Dispatch = DispatchLoaderDefault>
17266     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d = Dispatch() ) const;
17267 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17268 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
17269 
17270 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
17271     template<typename Dispatch = DispatchLoaderDefault>
17272     Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, vk::DisplayKHR* pDisplay, Dispatch const &d = Dispatch() ) const;
17273 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17274     template<typename Dispatch = DispatchLoaderDefault>
17275     ResultValueType<vk::DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d = Dispatch() ) const;
17276 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17277 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
17278 
17279 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
17280     template<typename Dispatch = DispatchLoaderDefault>
17281     Result releaseDisplayEXT( vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
17282 #else
17283     template<typename Dispatch = DispatchLoaderDefault>
17284     ResultValueType<void>::type releaseDisplayEXT( vk::DisplayKHR display, Dispatch const &d = Dispatch() ) const;
17285 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17286 
operator VkPhysicalDevice() const17287     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const
17288     {
17289       return m_physicalDevice;
17290     }
17291 
operator bool() const17292     explicit operator bool() const
17293     {
17294       return m_physicalDevice != VK_NULL_HANDLE;
17295     }
17296 
operator !() const17297     bool operator!() const
17298     {
17299       return m_physicalDevice == VK_NULL_HANDLE;
17300     }
17301 
17302   private:
17303     VkPhysicalDevice m_physicalDevice;
17304   };
17305   static_assert( sizeof( PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
17306 
17307   template <>
17308   struct cpp_type<ObjectType::ePhysicalDevice>
17309   {
17310     using type = PhysicalDevice;
17311   };
17312 
17313 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17314   class Instance;
17315   template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
17316   using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, DispatchLoaderDefault>;
17317   template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
17318   using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, DispatchLoaderDefault>;
17319   template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
17320   using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, DispatchLoaderDefault>;
17321 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17322 
17323   class Instance
17324   {
17325   public:
17326     using CType = VkInstance;
17327 
17328     static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eInstance;
17329 
17330   public:
Instance()17331     VULKAN_HPP_CONSTEXPR Instance()
17332       : m_instance(VK_NULL_HANDLE)
17333     {}
17334 
Instance(std::nullptr_t)17335     VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t )
17336       : m_instance(VK_NULL_HANDLE)
17337     {}
17338 
Instance(VkInstance instance)17339     VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance )
17340       : m_instance( instance )
17341     {}
17342 
17343 #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
operator =(VkInstance instance)17344     Instance & operator=(VkInstance instance)
17345     {
17346       m_instance = instance;
17347       return *this;
17348     }
17349 #endif
17350 
operator =(std::nullptr_t)17351     Instance & operator=( std::nullptr_t )
17352     {
17353       m_instance = VK_NULL_HANDLE;
17354       return *this;
17355     }
17356 
operator ==(Instance const & rhs) const17357     bool operator==( Instance const & rhs ) const
17358     {
17359       return m_instance == rhs.m_instance;
17360     }
17361 
operator !=(Instance const & rhs) const17362     bool operator!=(Instance const & rhs ) const
17363     {
17364       return m_instance != rhs.m_instance;
17365     }
17366 
operator <(Instance const & rhs) const17367     bool operator<(Instance const & rhs ) const
17368     {
17369       return m_instance < rhs.m_instance;
17370     }
17371 
17372 #ifdef VK_USE_PLATFORM_ANDROID_KHR
17373     template<typename Dispatch = DispatchLoaderDefault>
17374     Result createAndroidSurfaceKHR( const vk::AndroidSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17375 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17376     template<typename Dispatch = DispatchLoaderDefault>
17377     ResultValueType<vk::SurfaceKHR>::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17378 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17379     template<typename Dispatch = DispatchLoaderDefault>
17380     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17381 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17383 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17384 
17385     template<typename Dispatch = DispatchLoaderDefault>
17386     Result createDebugReportCallbackEXT( const vk::DebugReportCallbackCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DebugReportCallbackEXT* pCallback, Dispatch const &d = Dispatch() ) const;
17387 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17388     template<typename Dispatch = DispatchLoaderDefault>
17389     ResultValueType<vk::DebugReportCallbackEXT>::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17390 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17391     template<typename Dispatch = DispatchLoaderDefault>
17392     typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17393 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17395 
17396     template<typename Dispatch = DispatchLoaderDefault>
17397     Result createDebugUtilsMessengerEXT( const vk::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DebugUtilsMessengerEXT* pMessenger, Dispatch const &d = Dispatch() ) const;
17398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17399     template<typename Dispatch = DispatchLoaderDefault>
17400     ResultValueType<vk::DebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17401 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17402     template<typename Dispatch = DispatchLoaderDefault>
17403     typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17404 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17405 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17406 
17407     template<typename Dispatch = DispatchLoaderDefault>
17408     Result createDisplayPlaneSurfaceKHR( const vk::DisplaySurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17409 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17410     template<typename Dispatch = DispatchLoaderDefault>
17411     ResultValueType<vk::SurfaceKHR>::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17412 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17413     template<typename Dispatch = DispatchLoaderDefault>
17414     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17415 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17416 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17417 
17418     template<typename Dispatch = DispatchLoaderDefault>
17419     Result createHeadlessSurfaceEXT( const vk::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17421     template<typename Dispatch = DispatchLoaderDefault>
17422     ResultValueType<vk::SurfaceKHR>::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17423 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17424     template<typename Dispatch = DispatchLoaderDefault>
17425     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17426 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17428 
17429 #ifdef VK_USE_PLATFORM_IOS_MVK
17430     template<typename Dispatch = DispatchLoaderDefault>
17431     Result createIOSSurfaceMVK( const vk::IOSSurfaceCreateInfoMVK* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17433     template<typename Dispatch = DispatchLoaderDefault>
17434     ResultValueType<vk::SurfaceKHR>::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17435 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17436     template<typename Dispatch = DispatchLoaderDefault>
17437     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17438 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17439 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17440 #endif /*VK_USE_PLATFORM_IOS_MVK*/
17441 
17442 #ifdef VK_USE_PLATFORM_FUCHSIA
17443     template<typename Dispatch = DispatchLoaderDefault>
17444     Result createImagePipeSurfaceFUCHSIA( const vk::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17446     template<typename Dispatch = DispatchLoaderDefault>
17447     ResultValueType<vk::SurfaceKHR>::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17448 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17449     template<typename Dispatch = DispatchLoaderDefault>
17450     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17451 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17452 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17453 #endif /*VK_USE_PLATFORM_FUCHSIA*/
17454 
17455 #ifdef VK_USE_PLATFORM_MACOS_MVK
17456     template<typename Dispatch = DispatchLoaderDefault>
17457     Result createMacOSSurfaceMVK( const vk::MacOSSurfaceCreateInfoMVK* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17459     template<typename Dispatch = DispatchLoaderDefault>
17460     ResultValueType<vk::SurfaceKHR>::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17461 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17462     template<typename Dispatch = DispatchLoaderDefault>
17463     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17464 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17465 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17466 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
17467 
17468 #ifdef VK_USE_PLATFORM_METAL_EXT
17469     template<typename Dispatch = DispatchLoaderDefault>
17470     Result createMetalSurfaceEXT( const vk::MetalSurfaceCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17472     template<typename Dispatch = DispatchLoaderDefault>
17473     ResultValueType<vk::SurfaceKHR>::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17474 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17475     template<typename Dispatch = DispatchLoaderDefault>
17476     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17477 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17479 #endif /*VK_USE_PLATFORM_METAL_EXT*/
17480 
17481 #ifdef VK_USE_PLATFORM_GGP
17482     template<typename Dispatch = DispatchLoaderDefault>
17483     Result createStreamDescriptorSurfaceGGP( const vk::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17484 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17485     template<typename Dispatch = DispatchLoaderDefault>
17486     ResultValueType<vk::SurfaceKHR>::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17487 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17488     template<typename Dispatch = DispatchLoaderDefault>
17489     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17490 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17492 #endif /*VK_USE_PLATFORM_GGP*/
17493 
17494 #ifdef VK_USE_PLATFORM_VI_NN
17495     template<typename Dispatch = DispatchLoaderDefault>
17496     Result createViSurfaceNN( const vk::ViSurfaceCreateInfoNN* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17497 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17498     template<typename Dispatch = DispatchLoaderDefault>
17499     ResultValueType<vk::SurfaceKHR>::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17500 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17501     template<typename Dispatch = DispatchLoaderDefault>
17502     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17503 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17504 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17505 #endif /*VK_USE_PLATFORM_VI_NN*/
17506 
17507 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
17508     template<typename Dispatch = DispatchLoaderDefault>
17509     Result createWaylandSurfaceKHR( const vk::WaylandSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17510 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17511     template<typename Dispatch = DispatchLoaderDefault>
17512     ResultValueType<vk::SurfaceKHR>::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17513 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17514     template<typename Dispatch = DispatchLoaderDefault>
17515     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17516 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17517 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17518 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
17519 
17520 #ifdef VK_USE_PLATFORM_WIN32_KHR
17521     template<typename Dispatch = DispatchLoaderDefault>
17522     Result createWin32SurfaceKHR( const vk::Win32SurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17523 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17524     template<typename Dispatch = DispatchLoaderDefault>
17525     ResultValueType<vk::SurfaceKHR>::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17526 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17527     template<typename Dispatch = DispatchLoaderDefault>
17528     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17529 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17530 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17531 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
17532 
17533 #ifdef VK_USE_PLATFORM_XCB_KHR
17534     template<typename Dispatch = DispatchLoaderDefault>
17535     Result createXcbSurfaceKHR( const vk::XcbSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17536 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17537     template<typename Dispatch = DispatchLoaderDefault>
17538     ResultValueType<vk::SurfaceKHR>::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17539 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17540     template<typename Dispatch = DispatchLoaderDefault>
17541     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17542 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17543 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17544 #endif /*VK_USE_PLATFORM_XCB_KHR*/
17545 
17546 #ifdef VK_USE_PLATFORM_XLIB_KHR
17547     template<typename Dispatch = DispatchLoaderDefault>
17548     Result createXlibSurfaceKHR( const vk::XlibSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
17549 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17550     template<typename Dispatch = DispatchLoaderDefault>
17551     ResultValueType<vk::SurfaceKHR>::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17552 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17553     template<typename Dispatch = DispatchLoaderDefault>
17554     typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17555 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17556 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17557 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
17558 
17559     template<typename Dispatch = DispatchLoaderDefault>
17560     void debugReportMessageEXT( vk::DebugReportFlagsEXT flags, vk::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const &d = Dispatch() ) const;
17561 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17562     template<typename Dispatch = DispatchLoaderDefault>
17563     void debugReportMessageEXT( vk::DebugReportFlagsEXT flags, vk::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const &d = Dispatch() ) const;
17564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17565 
17566     template<typename Dispatch = DispatchLoaderDefault>
17567     void destroyDebugReportCallbackEXT( vk::DebugReportCallbackEXT callback, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17569     template<typename Dispatch = DispatchLoaderDefault>
17570     void destroyDebugReportCallbackEXT( vk::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17571 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17572 
17573     template<typename Dispatch = DispatchLoaderDefault>
17574     void destroy( vk::DebugReportCallbackEXT callback, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17576     template<typename Dispatch = DispatchLoaderDefault>
17577     void destroy( vk::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17578 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17579 
17580     template<typename Dispatch = DispatchLoaderDefault>
17581     void destroyDebugUtilsMessengerEXT( vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17582 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17583     template<typename Dispatch = DispatchLoaderDefault>
17584     void destroyDebugUtilsMessengerEXT( vk::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17585 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17586 
17587     template<typename Dispatch = DispatchLoaderDefault>
17588     void destroy( vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17589 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17590     template<typename Dispatch = DispatchLoaderDefault>
17591     void destroy( vk::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17592 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17593 
17594     template<typename Dispatch = DispatchLoaderDefault>
17595     void destroy( const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17596 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17597     template<typename Dispatch = DispatchLoaderDefault>
17598     void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17600 
17601     template<typename Dispatch = DispatchLoaderDefault>
17602     void destroySurfaceKHR( vk::SurfaceKHR surface, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17604     template<typename Dispatch = DispatchLoaderDefault>
17605     void destroySurfaceKHR( vk::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17606 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17607 
17608     template<typename Dispatch = DispatchLoaderDefault>
17609     void destroy( vk::SurfaceKHR surface, const vk::AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
17610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17611     template<typename Dispatch = DispatchLoaderDefault>
17612     void destroy( vk::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
17613 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17614 
17615     template<typename Dispatch = DispatchLoaderDefault>
17616     Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, vk::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = Dispatch() ) const;
17617 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17618     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
17619     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Dispatch const &d = Dispatch() ) const;
17620     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
17621     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const;
17622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17623 
17624     template<typename Dispatch = DispatchLoaderDefault>
17625     Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, vk::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = Dispatch() ) const;
17626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17627     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
17628     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d = Dispatch() ) const;
17629     template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
17630     typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
17631 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17632 
17633     template<typename Dispatch = DispatchLoaderDefault>
17634     Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, vk::PhysicalDevice* pPhysicalDevices, Dispatch const &d = Dispatch() ) const;
17635 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17636     template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = DispatchLoaderDefault>
17637     typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Dispatch const &d = Dispatch() ) const;
17638     template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = DispatchLoaderDefault>
17639     typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const;
17640 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17641 
17642     template<typename Dispatch = DispatchLoaderDefault>
17643     PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = Dispatch() ) const;
17644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17645     template<typename Dispatch = DispatchLoaderDefault>
17646     PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = Dispatch() ) const;
17647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17648 
17649     template<typename Dispatch = DispatchLoaderDefault>
17650     void submitDebugUtilsMessageEXT( vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, vk::DebugUtilsMessageTypeFlagsEXT messageTypes, const vk::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d = Dispatch() ) const;
17651 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17652     template<typename Dispatch = DispatchLoaderDefault>
17653     void submitDebugUtilsMessageEXT( vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, vk::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d = Dispatch() ) const;
17654 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17655 
operator VkInstance() const17656     VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const
17657     {
17658       return m_instance;
17659     }
17660 
operator bool() const17661     explicit operator bool() const
17662     {
17663       return m_instance != VK_NULL_HANDLE;
17664     }
17665 
operator !() const17666     bool operator!() const
17667     {
17668       return m_instance == VK_NULL_HANDLE;
17669     }
17670 
17671   private:
17672     VkInstance m_instance;
17673   };
17674   static_assert( sizeof( Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
17675 
17676   template <>
17677   struct cpp_type<ObjectType::eInstance>
17678   {
17679     using type = Instance;
17680   };
17681 
17682 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17683   template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
17684   using UniqueInstance = UniqueHandle<Instance, DispatchLoaderDefault>;
17685 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17686 
17687   template<typename Dispatch = DispatchLoaderDefault>
17688   Result createInstance( const vk::InstanceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Instance* pInstance, Dispatch const &d = Dispatch() );
17689 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17690   template<typename Dispatch = DispatchLoaderDefault>
17691   ResultValueType<vk::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() );
17692 #ifndef VULKAN_HPP_NO_SMART_HANDLE
17693   template<typename Dispatch = DispatchLoaderDefault>
17694   typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() );
17695 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
17696 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17697 
17698   template<typename Dispatch = DispatchLoaderDefault>
17699   Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, vk::ExtensionProperties* pProperties, Dispatch const &d = Dispatch() );
17700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17701   template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
17702   typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = Dispatch() );
17703   template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
17704   typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d );
17705 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17706 
17707   template<typename Dispatch = DispatchLoaderDefault>
17708   Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, vk::LayerProperties* pProperties, Dispatch const &d = Dispatch() );
17709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17710   template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
17711   typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d = Dispatch() );
17712   template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
17713   typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d );
17714 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17715 
17716   template<typename Dispatch = DispatchLoaderDefault>
17717   Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d = Dispatch() );
17718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17719   template<typename Dispatch = DispatchLoaderDefault>
17720   ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d = Dispatch() );
17721 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
17722 
17723   namespace layout
17724   {
17725     struct GeometryTrianglesNV
17726     {
17727     protected:
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::layout::GeometryTrianglesNV17728       GeometryTrianglesNV( vk::Buffer vertexData_ = vk::Buffer(),
17729                            vk::DeviceSize vertexOffset_ = 0,
17730                            uint32_t vertexCount_ = 0,
17731                            vk::DeviceSize vertexStride_ = 0,
17732                            vk::Format vertexFormat_ = vk::Format::eUndefined,
17733                            vk::Buffer indexData_ = vk::Buffer(),
17734                            vk::DeviceSize indexOffset_ = 0,
17735                            uint32_t indexCount_ = 0,
17736                            vk::IndexType indexType_ = vk::IndexType::eUint16,
17737                            vk::Buffer transformData_ = vk::Buffer(),
17738                            vk::DeviceSize transformOffset_ = 0 )
17739         : vertexData( vertexData_ )
17740         , vertexOffset( vertexOffset_ )
17741         , vertexCount( vertexCount_ )
17742         , vertexStride( vertexStride_ )
17743         , vertexFormat( vertexFormat_ )
17744         , indexData( indexData_ )
17745         , indexOffset( indexOffset_ )
17746         , indexCount( indexCount_ )
17747         , indexType( indexType_ )
17748         , transformData( transformData_ )
17749         , transformOffset( transformOffset_ )
17750       {}
17751 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::layout::GeometryTrianglesNV17752       GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs )
17753       {
17754         *reinterpret_cast<VkGeometryTrianglesNV*>(this) = rhs;
17755       }
17756 
operator =VULKAN_HPP_NAMESPACE::layout::GeometryTrianglesNV17757       GeometryTrianglesNV& operator=( VkGeometryTrianglesNV const & rhs )
17758       {
17759         *reinterpret_cast<VkGeometryTrianglesNV*>(this) = rhs;
17760         return *this;
17761       }
17762 
17763     public:
17764       vk::StructureType sType = StructureType::eGeometryTrianglesNV;
17765       const void* pNext = nullptr;
17766       vk::Buffer vertexData;
17767       vk::DeviceSize vertexOffset;
17768       uint32_t vertexCount;
17769       vk::DeviceSize vertexStride;
17770       vk::Format vertexFormat;
17771       vk::Buffer indexData;
17772       vk::DeviceSize indexOffset;
17773       uint32_t indexCount;
17774       vk::IndexType indexType;
17775       vk::Buffer transformData;
17776       vk::DeviceSize transformOffset;
17777     };
17778     static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "layout struct and wrapper have different size!" );
17779   }
17780 
17781   struct GeometryTrianglesNV : public layout::GeometryTrianglesNV
17782   {
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17783     GeometryTrianglesNV( vk::Buffer vertexData_ = vk::Buffer(),
17784                          vk::DeviceSize vertexOffset_ = 0,
17785                          uint32_t vertexCount_ = 0,
17786                          vk::DeviceSize vertexStride_ = 0,
17787                          vk::Format vertexFormat_ = vk::Format::eUndefined,
17788                          vk::Buffer indexData_ = vk::Buffer(),
17789                          vk::DeviceSize indexOffset_ = 0,
17790                          uint32_t indexCount_ = 0,
17791                          vk::IndexType indexType_ = vk::IndexType::eUint16,
17792                          vk::Buffer transformData_ = vk::Buffer(),
17793                          vk::DeviceSize transformOffset_ = 0 )
17794       : layout::GeometryTrianglesNV( vertexData_, vertexOffset_, vertexCount_, vertexStride_, vertexFormat_, indexData_, indexOffset_, indexCount_, indexType_, transformData_, transformOffset_ )
17795     {}
17796 
GeometryTrianglesNVVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17797     GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs )
17798       : layout::GeometryTrianglesNV( rhs )
17799     {}
17800 
operator =VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17801     GeometryTrianglesNV& operator=( VkGeometryTrianglesNV const & rhs )
17802     {
17803       *reinterpret_cast<VkGeometryTrianglesNV*>(this) = rhs;
17804       return *this;
17805     }
17806 
setPNextVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17807     GeometryTrianglesNV & setPNext( const void* pNext_ )
17808     {
17809       pNext = pNext_;
17810       return *this;
17811     }
17812 
setVertexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17813     GeometryTrianglesNV & setVertexData( vk::Buffer vertexData_ )
17814     {
17815       vertexData = vertexData_;
17816       return *this;
17817     }
17818 
setVertexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17819     GeometryTrianglesNV & setVertexOffset( vk::DeviceSize vertexOffset_ )
17820     {
17821       vertexOffset = vertexOffset_;
17822       return *this;
17823     }
17824 
setVertexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17825     GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ )
17826     {
17827       vertexCount = vertexCount_;
17828       return *this;
17829     }
17830 
setVertexStrideVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17831     GeometryTrianglesNV & setVertexStride( vk::DeviceSize vertexStride_ )
17832     {
17833       vertexStride = vertexStride_;
17834       return *this;
17835     }
17836 
setVertexFormatVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17837     GeometryTrianglesNV & setVertexFormat( vk::Format vertexFormat_ )
17838     {
17839       vertexFormat = vertexFormat_;
17840       return *this;
17841     }
17842 
setIndexDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17843     GeometryTrianglesNV & setIndexData( vk::Buffer indexData_ )
17844     {
17845       indexData = indexData_;
17846       return *this;
17847     }
17848 
setIndexOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17849     GeometryTrianglesNV & setIndexOffset( vk::DeviceSize indexOffset_ )
17850     {
17851       indexOffset = indexOffset_;
17852       return *this;
17853     }
17854 
setIndexCountVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17855     GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ )
17856     {
17857       indexCount = indexCount_;
17858       return *this;
17859     }
17860 
setIndexTypeVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17861     GeometryTrianglesNV & setIndexType( vk::IndexType indexType_ )
17862     {
17863       indexType = indexType_;
17864       return *this;
17865     }
17866 
setTransformDataVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17867     GeometryTrianglesNV & setTransformData( vk::Buffer transformData_ )
17868     {
17869       transformData = transformData_;
17870       return *this;
17871     }
17872 
setTransformOffsetVULKAN_HPP_NAMESPACE::GeometryTrianglesNV17873     GeometryTrianglesNV & setTransformOffset( vk::DeviceSize transformOffset_ )
17874     {
17875       transformOffset = transformOffset_;
17876       return *this;
17877     }
17878 
operator VkGeometryTrianglesNV const&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17879     operator VkGeometryTrianglesNV const&() const
17880     {
17881       return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
17882     }
17883 
operator VkGeometryTrianglesNV&VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17884     operator VkGeometryTrianglesNV &()
17885     {
17886       return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
17887     }
17888 
operator ==VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17889     bool operator==( GeometryTrianglesNV const& rhs ) const
17890     {
17891       return ( sType == rhs.sType )
17892           && ( pNext == rhs.pNext )
17893           && ( vertexData == rhs.vertexData )
17894           && ( vertexOffset == rhs.vertexOffset )
17895           && ( vertexCount == rhs.vertexCount )
17896           && ( vertexStride == rhs.vertexStride )
17897           && ( vertexFormat == rhs.vertexFormat )
17898           && ( indexData == rhs.indexData )
17899           && ( indexOffset == rhs.indexOffset )
17900           && ( indexCount == rhs.indexCount )
17901           && ( indexType == rhs.indexType )
17902           && ( transformData == rhs.transformData )
17903           && ( transformOffset == rhs.transformOffset );
17904     }
17905 
operator !=VULKAN_HPP_NAMESPACE::GeometryTrianglesNV17906     bool operator!=( GeometryTrianglesNV const& rhs ) const
17907     {
17908       return !operator==( rhs );
17909     }
17910 
17911   private:
17912     using layout::GeometryTrianglesNV::sType;
17913   };
17914   static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
17915   static_assert( std::is_standard_layout<GeometryTrianglesNV>::value, "struct wrapper is not a standard layout!" );
17916 
17917   namespace layout
17918   {
17919     struct GeometryAABBNV
17920     {
17921     protected:
GeometryAABBNVVULKAN_HPP_NAMESPACE::layout::GeometryAABBNV17922       GeometryAABBNV( vk::Buffer aabbData_ = vk::Buffer(),
17923                       uint32_t numAABBs_ = 0,
17924                       uint32_t stride_ = 0,
17925                       vk::DeviceSize offset_ = 0 )
17926         : aabbData( aabbData_ )
17927         , numAABBs( numAABBs_ )
17928         , stride( stride_ )
17929         , offset( offset_ )
17930       {}
17931 
GeometryAABBNVVULKAN_HPP_NAMESPACE::layout::GeometryAABBNV17932       GeometryAABBNV( VkGeometryAABBNV const & rhs )
17933       {
17934         *reinterpret_cast<VkGeometryAABBNV*>(this) = rhs;
17935       }
17936 
operator =VULKAN_HPP_NAMESPACE::layout::GeometryAABBNV17937       GeometryAABBNV& operator=( VkGeometryAABBNV const & rhs )
17938       {
17939         *reinterpret_cast<VkGeometryAABBNV*>(this) = rhs;
17940         return *this;
17941       }
17942 
17943     public:
17944       vk::StructureType sType = StructureType::eGeometryAabbNV;
17945       const void* pNext = nullptr;
17946       vk::Buffer aabbData;
17947       uint32_t numAABBs;
17948       uint32_t stride;
17949       vk::DeviceSize offset;
17950     };
17951     static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "layout struct and wrapper have different size!" );
17952   }
17953 
17954   struct GeometryAABBNV : public layout::GeometryAABBNV
17955   {
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV17956     GeometryAABBNV( vk::Buffer aabbData_ = vk::Buffer(),
17957                     uint32_t numAABBs_ = 0,
17958                     uint32_t stride_ = 0,
17959                     vk::DeviceSize offset_ = 0 )
17960       : layout::GeometryAABBNV( aabbData_, numAABBs_, stride_, offset_ )
17961     {}
17962 
GeometryAABBNVVULKAN_HPP_NAMESPACE::GeometryAABBNV17963     GeometryAABBNV( VkGeometryAABBNV const & rhs )
17964       : layout::GeometryAABBNV( rhs )
17965     {}
17966 
operator =VULKAN_HPP_NAMESPACE::GeometryAABBNV17967     GeometryAABBNV& operator=( VkGeometryAABBNV const & rhs )
17968     {
17969       *reinterpret_cast<VkGeometryAABBNV*>(this) = rhs;
17970       return *this;
17971     }
17972 
setPNextVULKAN_HPP_NAMESPACE::GeometryAABBNV17973     GeometryAABBNV & setPNext( const void* pNext_ )
17974     {
17975       pNext = pNext_;
17976       return *this;
17977     }
17978 
setAabbDataVULKAN_HPP_NAMESPACE::GeometryAABBNV17979     GeometryAABBNV & setAabbData( vk::Buffer aabbData_ )
17980     {
17981       aabbData = aabbData_;
17982       return *this;
17983     }
17984 
setNumAABBsVULKAN_HPP_NAMESPACE::GeometryAABBNV17985     GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ )
17986     {
17987       numAABBs = numAABBs_;
17988       return *this;
17989     }
17990 
setStrideVULKAN_HPP_NAMESPACE::GeometryAABBNV17991     GeometryAABBNV & setStride( uint32_t stride_ )
17992     {
17993       stride = stride_;
17994       return *this;
17995     }
17996 
setOffsetVULKAN_HPP_NAMESPACE::GeometryAABBNV17997     GeometryAABBNV & setOffset( vk::DeviceSize offset_ )
17998     {
17999       offset = offset_;
18000       return *this;
18001     }
18002 
operator VkGeometryAABBNV const&VULKAN_HPP_NAMESPACE::GeometryAABBNV18003     operator VkGeometryAABBNV const&() const
18004     {
18005       return *reinterpret_cast<const VkGeometryAABBNV*>( this );
18006     }
18007 
operator VkGeometryAABBNV&VULKAN_HPP_NAMESPACE::GeometryAABBNV18008     operator VkGeometryAABBNV &()
18009     {
18010       return *reinterpret_cast<VkGeometryAABBNV*>( this );
18011     }
18012 
operator ==VULKAN_HPP_NAMESPACE::GeometryAABBNV18013     bool operator==( GeometryAABBNV const& rhs ) const
18014     {
18015       return ( sType == rhs.sType )
18016           && ( pNext == rhs.pNext )
18017           && ( aabbData == rhs.aabbData )
18018           && ( numAABBs == rhs.numAABBs )
18019           && ( stride == rhs.stride )
18020           && ( offset == rhs.offset );
18021     }
18022 
operator !=VULKAN_HPP_NAMESPACE::GeometryAABBNV18023     bool operator!=( GeometryAABBNV const& rhs ) const
18024     {
18025       return !operator==( rhs );
18026     }
18027 
18028   private:
18029     using layout::GeometryAABBNV::sType;
18030   };
18031   static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
18032   static_assert( std::is_standard_layout<GeometryAABBNV>::value, "struct wrapper is not a standard layout!" );
18033 
18034   struct GeometryDataNV
18035   {
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV18036     GeometryDataNV( vk::GeometryTrianglesNV triangles_ = vk::GeometryTrianglesNV(),
18037                     vk::GeometryAABBNV aabbs_ = vk::GeometryAABBNV() )
18038         : triangles( triangles_ )
18039         , aabbs( aabbs_ )
18040     {}
18041 
GeometryDataNVVULKAN_HPP_NAMESPACE::GeometryDataNV18042     GeometryDataNV( VkGeometryDataNV const & rhs )
18043     {
18044       *reinterpret_cast<VkGeometryDataNV*>(this) = rhs;
18045     }
18046 
operator =VULKAN_HPP_NAMESPACE::GeometryDataNV18047     GeometryDataNV& operator=( VkGeometryDataNV const & rhs )
18048     {
18049       *reinterpret_cast<VkGeometryDataNV*>(this) = rhs;
18050       return *this;
18051     }
18052 
setTrianglesVULKAN_HPP_NAMESPACE::GeometryDataNV18053     GeometryDataNV & setTriangles( vk::GeometryTrianglesNV triangles_ )
18054     {
18055       triangles = triangles_;
18056       return *this;
18057     }
18058 
setAabbsVULKAN_HPP_NAMESPACE::GeometryDataNV18059     GeometryDataNV & setAabbs( vk::GeometryAABBNV aabbs_ )
18060     {
18061       aabbs = aabbs_;
18062       return *this;
18063     }
18064 
operator VkGeometryDataNV const&VULKAN_HPP_NAMESPACE::GeometryDataNV18065     operator VkGeometryDataNV const&() const
18066     {
18067       return *reinterpret_cast<const VkGeometryDataNV*>( this );
18068     }
18069 
operator VkGeometryDataNV&VULKAN_HPP_NAMESPACE::GeometryDataNV18070     operator VkGeometryDataNV &()
18071     {
18072       return *reinterpret_cast<VkGeometryDataNV*>( this );
18073     }
18074 
operator ==VULKAN_HPP_NAMESPACE::GeometryDataNV18075     bool operator==( GeometryDataNV const& rhs ) const
18076     {
18077       return ( triangles == rhs.triangles )
18078           && ( aabbs == rhs.aabbs );
18079     }
18080 
operator !=VULKAN_HPP_NAMESPACE::GeometryDataNV18081     bool operator!=( GeometryDataNV const& rhs ) const
18082     {
18083       return !operator==( rhs );
18084     }
18085 
18086   public:
18087     vk::GeometryTrianglesNV triangles;
18088     vk::GeometryAABBNV aabbs;
18089   };
18090   static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
18091   static_assert( std::is_standard_layout<GeometryDataNV>::value, "struct wrapper is not a standard layout!" );
18092 
18093   namespace layout
18094   {
18095     struct GeometryNV
18096     {
18097     protected:
GeometryNVVULKAN_HPP_NAMESPACE::layout::GeometryNV18098       GeometryNV( vk::GeometryTypeNV geometryType_ = vk::GeometryTypeNV::eTriangles,
18099                   vk::GeometryDataNV geometry_ = vk::GeometryDataNV(),
18100                   vk::GeometryFlagsNV flags_ = vk::GeometryFlagsNV() )
18101         : geometryType( geometryType_ )
18102         , geometry( geometry_ )
18103         , flags( flags_ )
18104       {}
18105 
GeometryNVVULKAN_HPP_NAMESPACE::layout::GeometryNV18106       GeometryNV( VkGeometryNV const & rhs )
18107       {
18108         *reinterpret_cast<VkGeometryNV*>(this) = rhs;
18109       }
18110 
operator =VULKAN_HPP_NAMESPACE::layout::GeometryNV18111       GeometryNV& operator=( VkGeometryNV const & rhs )
18112       {
18113         *reinterpret_cast<VkGeometryNV*>(this) = rhs;
18114         return *this;
18115       }
18116 
18117     public:
18118       vk::StructureType sType = StructureType::eGeometryNV;
18119       const void* pNext = nullptr;
18120       vk::GeometryTypeNV geometryType;
18121       vk::GeometryDataNV geometry;
18122       vk::GeometryFlagsNV flags;
18123     };
18124     static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "layout struct and wrapper have different size!" );
18125   }
18126 
18127   struct GeometryNV : public layout::GeometryNV
18128   {
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV18129     GeometryNV( vk::GeometryTypeNV geometryType_ = vk::GeometryTypeNV::eTriangles,
18130                 vk::GeometryDataNV geometry_ = vk::GeometryDataNV(),
18131                 vk::GeometryFlagsNV flags_ = vk::GeometryFlagsNV() )
18132       : layout::GeometryNV( geometryType_, geometry_, flags_ )
18133     {}
18134 
GeometryNVVULKAN_HPP_NAMESPACE::GeometryNV18135     GeometryNV( VkGeometryNV const & rhs )
18136       : layout::GeometryNV( rhs )
18137     {}
18138 
operator =VULKAN_HPP_NAMESPACE::GeometryNV18139     GeometryNV& operator=( VkGeometryNV const & rhs )
18140     {
18141       *reinterpret_cast<VkGeometryNV*>(this) = rhs;
18142       return *this;
18143     }
18144 
setPNextVULKAN_HPP_NAMESPACE::GeometryNV18145     GeometryNV & setPNext( const void* pNext_ )
18146     {
18147       pNext = pNext_;
18148       return *this;
18149     }
18150 
setGeometryTypeVULKAN_HPP_NAMESPACE::GeometryNV18151     GeometryNV & setGeometryType( vk::GeometryTypeNV geometryType_ )
18152     {
18153       geometryType = geometryType_;
18154       return *this;
18155     }
18156 
setGeometryVULKAN_HPP_NAMESPACE::GeometryNV18157     GeometryNV & setGeometry( vk::GeometryDataNV geometry_ )
18158     {
18159       geometry = geometry_;
18160       return *this;
18161     }
18162 
setFlagsVULKAN_HPP_NAMESPACE::GeometryNV18163     GeometryNV & setFlags( vk::GeometryFlagsNV flags_ )
18164     {
18165       flags = flags_;
18166       return *this;
18167     }
18168 
operator VkGeometryNV const&VULKAN_HPP_NAMESPACE::GeometryNV18169     operator VkGeometryNV const&() const
18170     {
18171       return *reinterpret_cast<const VkGeometryNV*>( this );
18172     }
18173 
operator VkGeometryNV&VULKAN_HPP_NAMESPACE::GeometryNV18174     operator VkGeometryNV &()
18175     {
18176       return *reinterpret_cast<VkGeometryNV*>( this );
18177     }
18178 
operator ==VULKAN_HPP_NAMESPACE::GeometryNV18179     bool operator==( GeometryNV const& rhs ) const
18180     {
18181       return ( sType == rhs.sType )
18182           && ( pNext == rhs.pNext )
18183           && ( geometryType == rhs.geometryType )
18184           && ( geometry == rhs.geometry )
18185           && ( flags == rhs.flags );
18186     }
18187 
operator !=VULKAN_HPP_NAMESPACE::GeometryNV18188     bool operator!=( GeometryNV const& rhs ) const
18189     {
18190       return !operator==( rhs );
18191     }
18192 
18193   private:
18194     using layout::GeometryNV::sType;
18195   };
18196   static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
18197   static_assert( std::is_standard_layout<GeometryNV>::value, "struct wrapper is not a standard layout!" );
18198 
18199   namespace layout
18200   {
18201     struct AccelerationStructureInfoNV
18202     {
18203     protected:
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureInfoNV18204       AccelerationStructureInfoNV( vk::AccelerationStructureTypeNV type_ = vk::AccelerationStructureTypeNV::eTopLevel,
18205                                    vk::BuildAccelerationStructureFlagsNV flags_ = vk::BuildAccelerationStructureFlagsNV(),
18206                                    uint32_t instanceCount_ = 0,
18207                                    uint32_t geometryCount_ = 0,
18208                                    const vk::GeometryNV* pGeometries_ = nullptr )
18209         : type( type_ )
18210         , flags( flags_ )
18211         , instanceCount( instanceCount_ )
18212         , geometryCount( geometryCount_ )
18213         , pGeometries( pGeometries_ )
18214       {}
18215 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureInfoNV18216       AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs )
18217       {
18218         *reinterpret_cast<VkAccelerationStructureInfoNV*>(this) = rhs;
18219       }
18220 
operator =VULKAN_HPP_NAMESPACE::layout::AccelerationStructureInfoNV18221       AccelerationStructureInfoNV& operator=( VkAccelerationStructureInfoNV const & rhs )
18222       {
18223         *reinterpret_cast<VkAccelerationStructureInfoNV*>(this) = rhs;
18224         return *this;
18225       }
18226 
18227     public:
18228       vk::StructureType sType = StructureType::eAccelerationStructureInfoNV;
18229       const void* pNext = nullptr;
18230       vk::AccelerationStructureTypeNV type;
18231       vk::BuildAccelerationStructureFlagsNV flags;
18232       uint32_t instanceCount;
18233       uint32_t geometryCount;
18234       const vk::GeometryNV* pGeometries;
18235     };
18236     static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "layout struct and wrapper have different size!" );
18237   }
18238 
18239   struct AccelerationStructureInfoNV : public layout::AccelerationStructureInfoNV
18240   {
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18241     AccelerationStructureInfoNV( vk::AccelerationStructureTypeNV type_ = vk::AccelerationStructureTypeNV::eTopLevel,
18242                                  vk::BuildAccelerationStructureFlagsNV flags_ = vk::BuildAccelerationStructureFlagsNV(),
18243                                  uint32_t instanceCount_ = 0,
18244                                  uint32_t geometryCount_ = 0,
18245                                  const vk::GeometryNV* pGeometries_ = nullptr )
18246       : layout::AccelerationStructureInfoNV( type_, flags_, instanceCount_, geometryCount_, pGeometries_ )
18247     {}
18248 
AccelerationStructureInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18249     AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs )
18250       : layout::AccelerationStructureInfoNV( rhs )
18251     {}
18252 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18253     AccelerationStructureInfoNV& operator=( VkAccelerationStructureInfoNV const & rhs )
18254     {
18255       *reinterpret_cast<VkAccelerationStructureInfoNV*>(this) = rhs;
18256       return *this;
18257     }
18258 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18259     AccelerationStructureInfoNV & setPNext( const void* pNext_ )
18260     {
18261       pNext = pNext_;
18262       return *this;
18263     }
18264 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18265     AccelerationStructureInfoNV & setType( vk::AccelerationStructureTypeNV type_ )
18266     {
18267       type = type_;
18268       return *this;
18269     }
18270 
setFlagsVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18271     AccelerationStructureInfoNV & setFlags( vk::BuildAccelerationStructureFlagsNV flags_ )
18272     {
18273       flags = flags_;
18274       return *this;
18275     }
18276 
setInstanceCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18277     AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ )
18278     {
18279       instanceCount = instanceCount_;
18280       return *this;
18281     }
18282 
setGeometryCountVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18283     AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ )
18284     {
18285       geometryCount = geometryCount_;
18286       return *this;
18287     }
18288 
setPGeometriesVULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18289     AccelerationStructureInfoNV & setPGeometries( const vk::GeometryNV* pGeometries_ )
18290     {
18291       pGeometries = pGeometries_;
18292       return *this;
18293     }
18294 
operator VkAccelerationStructureInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18295     operator VkAccelerationStructureInfoNV const&() const
18296     {
18297       return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
18298     }
18299 
operator VkAccelerationStructureInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18300     operator VkAccelerationStructureInfoNV &()
18301     {
18302       return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
18303     }
18304 
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18305     bool operator==( AccelerationStructureInfoNV const& rhs ) const
18306     {
18307       return ( sType == rhs.sType )
18308           && ( pNext == rhs.pNext )
18309           && ( type == rhs.type )
18310           && ( flags == rhs.flags )
18311           && ( instanceCount == rhs.instanceCount )
18312           && ( geometryCount == rhs.geometryCount )
18313           && ( pGeometries == rhs.pGeometries );
18314     }
18315 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV18316     bool operator!=( AccelerationStructureInfoNV const& rhs ) const
18317     {
18318       return !operator==( rhs );
18319     }
18320 
18321   private:
18322     using layout::AccelerationStructureInfoNV::sType;
18323   };
18324   static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
18325   static_assert( std::is_standard_layout<AccelerationStructureInfoNV>::value, "struct wrapper is not a standard layout!" );
18326 
18327   namespace layout
18328   {
18329     struct AccelerationStructureCreateInfoNV
18330     {
18331     protected:
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureCreateInfoNV18332       AccelerationStructureCreateInfoNV( vk::DeviceSize compactedSize_ = 0,
18333                                          vk::AccelerationStructureInfoNV info_ = vk::AccelerationStructureInfoNV() )
18334         : compactedSize( compactedSize_ )
18335         , info( info_ )
18336       {}
18337 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureCreateInfoNV18338       AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs )
18339       {
18340         *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>(this) = rhs;
18341       }
18342 
operator =VULKAN_HPP_NAMESPACE::layout::AccelerationStructureCreateInfoNV18343       AccelerationStructureCreateInfoNV& operator=( VkAccelerationStructureCreateInfoNV const & rhs )
18344       {
18345         *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>(this) = rhs;
18346         return *this;
18347       }
18348 
18349     public:
18350       vk::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
18351       const void* pNext = nullptr;
18352       vk::DeviceSize compactedSize;
18353       vk::AccelerationStructureInfoNV info;
18354     };
18355     static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "layout struct and wrapper have different size!" );
18356   }
18357 
18358   struct AccelerationStructureCreateInfoNV : public layout::AccelerationStructureCreateInfoNV
18359   {
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18360     AccelerationStructureCreateInfoNV( vk::DeviceSize compactedSize_ = 0,
18361                                        vk::AccelerationStructureInfoNV info_ = vk::AccelerationStructureInfoNV() )
18362       : layout::AccelerationStructureCreateInfoNV( compactedSize_, info_ )
18363     {}
18364 
AccelerationStructureCreateInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18365     AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs )
18366       : layout::AccelerationStructureCreateInfoNV( rhs )
18367     {}
18368 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18369     AccelerationStructureCreateInfoNV& operator=( VkAccelerationStructureCreateInfoNV const & rhs )
18370     {
18371       *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>(this) = rhs;
18372       return *this;
18373     }
18374 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18375     AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ )
18376     {
18377       pNext = pNext_;
18378       return *this;
18379     }
18380 
setCompactedSizeVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18381     AccelerationStructureCreateInfoNV & setCompactedSize( vk::DeviceSize compactedSize_ )
18382     {
18383       compactedSize = compactedSize_;
18384       return *this;
18385     }
18386 
setInfoVULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18387     AccelerationStructureCreateInfoNV & setInfo( vk::AccelerationStructureInfoNV info_ )
18388     {
18389       info = info_;
18390       return *this;
18391     }
18392 
operator VkAccelerationStructureCreateInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18393     operator VkAccelerationStructureCreateInfoNV const&() const
18394     {
18395       return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
18396     }
18397 
operator VkAccelerationStructureCreateInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18398     operator VkAccelerationStructureCreateInfoNV &()
18399     {
18400       return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
18401     }
18402 
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18403     bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const
18404     {
18405       return ( sType == rhs.sType )
18406           && ( pNext == rhs.pNext )
18407           && ( compactedSize == rhs.compactedSize )
18408           && ( info == rhs.info );
18409     }
18410 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV18411     bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const
18412     {
18413       return !operator==( rhs );
18414     }
18415 
18416   private:
18417     using layout::AccelerationStructureCreateInfoNV::sType;
18418   };
18419   static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
18420   static_assert( std::is_standard_layout<AccelerationStructureCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
18421 
18422   namespace layout
18423   {
18424     struct AccelerationStructureMemoryRequirementsInfoNV
18425     {
18426     protected:
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureMemoryRequirementsInfoNV18427       AccelerationStructureMemoryRequirementsInfoNV( vk::AccelerationStructureMemoryRequirementsTypeNV type_ = vk::AccelerationStructureMemoryRequirementsTypeNV::eObject,
18428                                                      vk::AccelerationStructureNV accelerationStructure_ = vk::AccelerationStructureNV() )
18429         : type( type_ )
18430         , accelerationStructure( accelerationStructure_ )
18431       {}
18432 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::layout::AccelerationStructureMemoryRequirementsInfoNV18433       AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
18434       {
18435         *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(this) = rhs;
18436       }
18437 
operator =VULKAN_HPP_NAMESPACE::layout::AccelerationStructureMemoryRequirementsInfoNV18438       AccelerationStructureMemoryRequirementsInfoNV& operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
18439       {
18440         *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(this) = rhs;
18441         return *this;
18442       }
18443 
18444     public:
18445       vk::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
18446       const void* pNext = nullptr;
18447       vk::AccelerationStructureMemoryRequirementsTypeNV type;
18448       vk::AccelerationStructureNV accelerationStructure;
18449     };
18450     static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "layout struct and wrapper have different size!" );
18451   }
18452 
18453   struct AccelerationStructureMemoryRequirementsInfoNV : public layout::AccelerationStructureMemoryRequirementsInfoNV
18454   {
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18455     AccelerationStructureMemoryRequirementsInfoNV( vk::AccelerationStructureMemoryRequirementsTypeNV type_ = vk::AccelerationStructureMemoryRequirementsTypeNV::eObject,
18456                                                    vk::AccelerationStructureNV accelerationStructure_ = vk::AccelerationStructureNV() )
18457       : layout::AccelerationStructureMemoryRequirementsInfoNV( type_, accelerationStructure_ )
18458     {}
18459 
AccelerationStructureMemoryRequirementsInfoNVVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18460     AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
18461       : layout::AccelerationStructureMemoryRequirementsInfoNV( rhs )
18462     {}
18463 
operator =VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18464     AccelerationStructureMemoryRequirementsInfoNV& operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
18465     {
18466       *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(this) = rhs;
18467       return *this;
18468     }
18469 
setPNextVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18470     AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ )
18471     {
18472       pNext = pNext_;
18473       return *this;
18474     }
18475 
setTypeVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18476     AccelerationStructureMemoryRequirementsInfoNV & setType( vk::AccelerationStructureMemoryRequirementsTypeNV type_ )
18477     {
18478       type = type_;
18479       return *this;
18480     }
18481 
setAccelerationStructureVULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18482     AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( vk::AccelerationStructureNV accelerationStructure_ )
18483     {
18484       accelerationStructure = accelerationStructure_;
18485       return *this;
18486     }
18487 
operator VkAccelerationStructureMemoryRequirementsInfoNV const&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18488     operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const
18489     {
18490       return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
18491     }
18492 
operator VkAccelerationStructureMemoryRequirementsInfoNV&VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18493     operator VkAccelerationStructureMemoryRequirementsInfoNV &()
18494     {
18495       return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
18496     }
18497 
operator ==VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18498     bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const
18499     {
18500       return ( sType == rhs.sType )
18501           && ( pNext == rhs.pNext )
18502           && ( type == rhs.type )
18503           && ( accelerationStructure == rhs.accelerationStructure );
18504     }
18505 
operator !=VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV18506     bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const
18507     {
18508       return !operator==( rhs );
18509     }
18510 
18511   private:
18512     using layout::AccelerationStructureMemoryRequirementsInfoNV::sType;
18513   };
18514   static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
18515   static_assert( std::is_standard_layout<AccelerationStructureMemoryRequirementsInfoNV>::value, "struct wrapper is not a standard layout!" );
18516 
18517   namespace layout
18518   {
18519     struct AcquireNextImageInfoKHR
18520     {
18521     protected:
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::layout::AcquireNextImageInfoKHR18522       AcquireNextImageInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR(),
18523                                uint64_t timeout_ = 0,
18524                                vk::Semaphore semaphore_ = vk::Semaphore(),
18525                                vk::Fence fence_ = vk::Fence(),
18526                                uint32_t deviceMask_ = 0 )
18527         : swapchain( swapchain_ )
18528         , timeout( timeout_ )
18529         , semaphore( semaphore_ )
18530         , fence( fence_ )
18531         , deviceMask( deviceMask_ )
18532       {}
18533 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::layout::AcquireNextImageInfoKHR18534       AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs )
18535       {
18536         *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this) = rhs;
18537       }
18538 
operator =VULKAN_HPP_NAMESPACE::layout::AcquireNextImageInfoKHR18539       AcquireNextImageInfoKHR& operator=( VkAcquireNextImageInfoKHR const & rhs )
18540       {
18541         *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this) = rhs;
18542         return *this;
18543       }
18544 
18545     public:
18546       vk::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
18547       const void* pNext = nullptr;
18548       vk::SwapchainKHR swapchain;
18549       uint64_t timeout;
18550       vk::Semaphore semaphore;
18551       vk::Fence fence;
18552       uint32_t deviceMask;
18553     };
18554     static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "layout struct and wrapper have different size!" );
18555   }
18556 
18557   struct AcquireNextImageInfoKHR : public layout::AcquireNextImageInfoKHR
18558   {
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18559     AcquireNextImageInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR(),
18560                              uint64_t timeout_ = 0,
18561                              vk::Semaphore semaphore_ = vk::Semaphore(),
18562                              vk::Fence fence_ = vk::Fence(),
18563                              uint32_t deviceMask_ = 0 )
18564       : layout::AcquireNextImageInfoKHR( swapchain_, timeout_, semaphore_, fence_, deviceMask_ )
18565     {}
18566 
AcquireNextImageInfoKHRVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18567     AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs )
18568       : layout::AcquireNextImageInfoKHR( rhs )
18569     {}
18570 
operator =VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18571     AcquireNextImageInfoKHR& operator=( VkAcquireNextImageInfoKHR const & rhs )
18572     {
18573       *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this) = rhs;
18574       return *this;
18575     }
18576 
setPNextVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18577     AcquireNextImageInfoKHR & setPNext( const void* pNext_ )
18578     {
18579       pNext = pNext_;
18580       return *this;
18581     }
18582 
setSwapchainVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18583     AcquireNextImageInfoKHR & setSwapchain( vk::SwapchainKHR swapchain_ )
18584     {
18585       swapchain = swapchain_;
18586       return *this;
18587     }
18588 
setTimeoutVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18589     AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ )
18590     {
18591       timeout = timeout_;
18592       return *this;
18593     }
18594 
setSemaphoreVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18595     AcquireNextImageInfoKHR & setSemaphore( vk::Semaphore semaphore_ )
18596     {
18597       semaphore = semaphore_;
18598       return *this;
18599     }
18600 
setFenceVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18601     AcquireNextImageInfoKHR & setFence( vk::Fence fence_ )
18602     {
18603       fence = fence_;
18604       return *this;
18605     }
18606 
setDeviceMaskVULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18607     AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ )
18608     {
18609       deviceMask = deviceMask_;
18610       return *this;
18611     }
18612 
operator VkAcquireNextImageInfoKHR const&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18613     operator VkAcquireNextImageInfoKHR const&() const
18614     {
18615       return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
18616     }
18617 
operator VkAcquireNextImageInfoKHR&VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18618     operator VkAcquireNextImageInfoKHR &()
18619     {
18620       return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
18621     }
18622 
operator ==VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18623     bool operator==( AcquireNextImageInfoKHR const& rhs ) const
18624     {
18625       return ( sType == rhs.sType )
18626           && ( pNext == rhs.pNext )
18627           && ( swapchain == rhs.swapchain )
18628           && ( timeout == rhs.timeout )
18629           && ( semaphore == rhs.semaphore )
18630           && ( fence == rhs.fence )
18631           && ( deviceMask == rhs.deviceMask );
18632     }
18633 
operator !=VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR18634     bool operator!=( AcquireNextImageInfoKHR const& rhs ) const
18635     {
18636       return !operator==( rhs );
18637     }
18638 
18639   private:
18640     using layout::AcquireNextImageInfoKHR::sType;
18641   };
18642   static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
18643   static_assert( std::is_standard_layout<AcquireNextImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
18644 
18645   struct AllocationCallbacks
18646   {
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks18647     AllocationCallbacks( void* pUserData_ = nullptr,
18648                          PFN_vkAllocationFunction pfnAllocation_ = nullptr,
18649                          PFN_vkReallocationFunction pfnReallocation_ = nullptr,
18650                          PFN_vkFreeFunction pfnFree_ = nullptr,
18651                          PFN_vkInternalAllocationNotification pfnInternalAllocation_ = nullptr,
18652                          PFN_vkInternalFreeNotification pfnInternalFree_ = nullptr )
18653         : pUserData( pUserData_ )
18654         , pfnAllocation( pfnAllocation_ )
18655         , pfnReallocation( pfnReallocation_ )
18656         , pfnFree( pfnFree_ )
18657         , pfnInternalAllocation( pfnInternalAllocation_ )
18658         , pfnInternalFree( pfnInternalFree_ )
18659     {}
18660 
AllocationCallbacksVULKAN_HPP_NAMESPACE::AllocationCallbacks18661     AllocationCallbacks( VkAllocationCallbacks const & rhs )
18662     {
18663       *reinterpret_cast<VkAllocationCallbacks*>(this) = rhs;
18664     }
18665 
operator =VULKAN_HPP_NAMESPACE::AllocationCallbacks18666     AllocationCallbacks& operator=( VkAllocationCallbacks const & rhs )
18667     {
18668       *reinterpret_cast<VkAllocationCallbacks*>(this) = rhs;
18669       return *this;
18670     }
18671 
setPUserDataVULKAN_HPP_NAMESPACE::AllocationCallbacks18672     AllocationCallbacks & setPUserData( void* pUserData_ )
18673     {
18674       pUserData = pUserData_;
18675       return *this;
18676     }
18677 
setPfnAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18678     AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ )
18679     {
18680       pfnAllocation = pfnAllocation_;
18681       return *this;
18682     }
18683 
setPfnReallocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18684     AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ )
18685     {
18686       pfnReallocation = pfnReallocation_;
18687       return *this;
18688     }
18689 
setPfnFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks18690     AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ )
18691     {
18692       pfnFree = pfnFree_;
18693       return *this;
18694     }
18695 
setPfnInternalAllocationVULKAN_HPP_NAMESPACE::AllocationCallbacks18696     AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ )
18697     {
18698       pfnInternalAllocation = pfnInternalAllocation_;
18699       return *this;
18700     }
18701 
setPfnInternalFreeVULKAN_HPP_NAMESPACE::AllocationCallbacks18702     AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ )
18703     {
18704       pfnInternalFree = pfnInternalFree_;
18705       return *this;
18706     }
18707 
operator VkAllocationCallbacks const&VULKAN_HPP_NAMESPACE::AllocationCallbacks18708     operator VkAllocationCallbacks const&() const
18709     {
18710       return *reinterpret_cast<const VkAllocationCallbacks*>( this );
18711     }
18712 
operator VkAllocationCallbacks&VULKAN_HPP_NAMESPACE::AllocationCallbacks18713     operator VkAllocationCallbacks &()
18714     {
18715       return *reinterpret_cast<VkAllocationCallbacks*>( this );
18716     }
18717 
operator ==VULKAN_HPP_NAMESPACE::AllocationCallbacks18718     bool operator==( AllocationCallbacks const& rhs ) const
18719     {
18720       return ( pUserData == rhs.pUserData )
18721           && ( pfnAllocation == rhs.pfnAllocation )
18722           && ( pfnReallocation == rhs.pfnReallocation )
18723           && ( pfnFree == rhs.pfnFree )
18724           && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
18725           && ( pfnInternalFree == rhs.pfnInternalFree );
18726     }
18727 
operator !=VULKAN_HPP_NAMESPACE::AllocationCallbacks18728     bool operator!=( AllocationCallbacks const& rhs ) const
18729     {
18730       return !operator==( rhs );
18731     }
18732 
18733   public:
18734     void* pUserData;
18735     PFN_vkAllocationFunction pfnAllocation;
18736     PFN_vkReallocationFunction pfnReallocation;
18737     PFN_vkFreeFunction pfnFree;
18738     PFN_vkInternalAllocationNotification pfnInternalAllocation;
18739     PFN_vkInternalFreeNotification pfnInternalFree;
18740   };
18741   static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
18742   static_assert( std::is_standard_layout<AllocationCallbacks>::value, "struct wrapper is not a standard layout!" );
18743 
18744   struct ComponentMapping
18745   {
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping18746     ComponentMapping( vk::ComponentSwizzle r_ = vk::ComponentSwizzle::eIdentity,
18747                       vk::ComponentSwizzle g_ = vk::ComponentSwizzle::eIdentity,
18748                       vk::ComponentSwizzle b_ = vk::ComponentSwizzle::eIdentity,
18749                       vk::ComponentSwizzle a_ = vk::ComponentSwizzle::eIdentity )
18750         : r( r_ )
18751         , g( g_ )
18752         , b( b_ )
18753         , a( a_ )
18754     {}
18755 
ComponentMappingVULKAN_HPP_NAMESPACE::ComponentMapping18756     ComponentMapping( VkComponentMapping const & rhs )
18757     {
18758       *reinterpret_cast<VkComponentMapping*>(this) = rhs;
18759     }
18760 
operator =VULKAN_HPP_NAMESPACE::ComponentMapping18761     ComponentMapping& operator=( VkComponentMapping const & rhs )
18762     {
18763       *reinterpret_cast<VkComponentMapping*>(this) = rhs;
18764       return *this;
18765     }
18766 
setRVULKAN_HPP_NAMESPACE::ComponentMapping18767     ComponentMapping & setR( vk::ComponentSwizzle r_ )
18768     {
18769       r = r_;
18770       return *this;
18771     }
18772 
setGVULKAN_HPP_NAMESPACE::ComponentMapping18773     ComponentMapping & setG( vk::ComponentSwizzle g_ )
18774     {
18775       g = g_;
18776       return *this;
18777     }
18778 
setBVULKAN_HPP_NAMESPACE::ComponentMapping18779     ComponentMapping & setB( vk::ComponentSwizzle b_ )
18780     {
18781       b = b_;
18782       return *this;
18783     }
18784 
setAVULKAN_HPP_NAMESPACE::ComponentMapping18785     ComponentMapping & setA( vk::ComponentSwizzle a_ )
18786     {
18787       a = a_;
18788       return *this;
18789     }
18790 
operator VkComponentMapping const&VULKAN_HPP_NAMESPACE::ComponentMapping18791     operator VkComponentMapping const&() const
18792     {
18793       return *reinterpret_cast<const VkComponentMapping*>( this );
18794     }
18795 
operator VkComponentMapping&VULKAN_HPP_NAMESPACE::ComponentMapping18796     operator VkComponentMapping &()
18797     {
18798       return *reinterpret_cast<VkComponentMapping*>( this );
18799     }
18800 
operator ==VULKAN_HPP_NAMESPACE::ComponentMapping18801     bool operator==( ComponentMapping const& rhs ) const
18802     {
18803       return ( r == rhs.r )
18804           && ( g == rhs.g )
18805           && ( b == rhs.b )
18806           && ( a == rhs.a );
18807     }
18808 
operator !=VULKAN_HPP_NAMESPACE::ComponentMapping18809     bool operator!=( ComponentMapping const& rhs ) const
18810     {
18811       return !operator==( rhs );
18812     }
18813 
18814   public:
18815     vk::ComponentSwizzle r;
18816     vk::ComponentSwizzle g;
18817     vk::ComponentSwizzle b;
18818     vk::ComponentSwizzle a;
18819   };
18820   static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
18821   static_assert( std::is_standard_layout<ComponentMapping>::value, "struct wrapper is not a standard layout!" );
18822 
18823 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18824 
18825   namespace layout
18826   {
18827     struct AndroidHardwareBufferFormatPropertiesANDROID
18828     {
18829     protected:
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferFormatPropertiesANDROID18830       AndroidHardwareBufferFormatPropertiesANDROID( vk::Format format_ = vk::Format::eUndefined,
18831                                                     uint64_t externalFormat_ = 0,
18832                                                     vk::FormatFeatureFlags formatFeatures_ = vk::FormatFeatureFlags(),
18833                                                     vk::ComponentMapping samplerYcbcrConversionComponents_ = vk::ComponentMapping(),
18834                                                     vk::SamplerYcbcrModelConversion suggestedYcbcrModel_ = vk::SamplerYcbcrModelConversion::eRgbIdentity,
18835                                                     vk::SamplerYcbcrRange suggestedYcbcrRange_ = vk::SamplerYcbcrRange::eItuFull,
18836                                                     vk::ChromaLocation suggestedXChromaOffset_ = vk::ChromaLocation::eCositedEven,
18837                                                     vk::ChromaLocation suggestedYChromaOffset_ = vk::ChromaLocation::eCositedEven )
18838         : format( format_ )
18839         , externalFormat( externalFormat_ )
18840         , formatFeatures( formatFeatures_ )
18841         , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
18842         , suggestedYcbcrModel( suggestedYcbcrModel_ )
18843         , suggestedYcbcrRange( suggestedYcbcrRange_ )
18844         , suggestedXChromaOffset( suggestedXChromaOffset_ )
18845         , suggestedYChromaOffset( suggestedYChromaOffset_ )
18846       {}
18847 
AndroidHardwareBufferFormatPropertiesANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferFormatPropertiesANDROID18848       AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs )
18849       {
18850         *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(this) = rhs;
18851       }
18852 
operator =VULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferFormatPropertiesANDROID18853       AndroidHardwareBufferFormatPropertiesANDROID& operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs )
18854       {
18855         *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(this) = rhs;
18856         return *this;
18857       }
18858 
18859     public:
18860       vk::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
18861       void* pNext = nullptr;
18862       vk::Format format;
18863       uint64_t externalFormat;
18864       vk::FormatFeatureFlags formatFeatures;
18865       vk::ComponentMapping samplerYcbcrConversionComponents;
18866       vk::SamplerYcbcrModelConversion suggestedYcbcrModel;
18867       vk::SamplerYcbcrRange suggestedYcbcrRange;
18868       vk::ChromaLocation suggestedXChromaOffset;
18869       vk::ChromaLocation suggestedYChromaOffset;
18870     };
18871     static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "layout struct and wrapper have different size!" );
18872   }
18873 
18874   struct AndroidHardwareBufferFormatPropertiesANDROID : public layout::AndroidHardwareBufferFormatPropertiesANDROID
18875   {
operator VkAndroidHardwareBufferFormatPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18876     operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const
18877     {
18878       return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
18879     }
18880 
operator VkAndroidHardwareBufferFormatPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18881     operator VkAndroidHardwareBufferFormatPropertiesANDROID &()
18882     {
18883       return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
18884     }
18885 
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18886     bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
18887     {
18888       return ( sType == rhs.sType )
18889           && ( pNext == rhs.pNext )
18890           && ( format == rhs.format )
18891           && ( externalFormat == rhs.externalFormat )
18892           && ( formatFeatures == rhs.formatFeatures )
18893           && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
18894           && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
18895           && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
18896           && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
18897           && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
18898     }
18899 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID18900     bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
18901     {
18902       return !operator==( rhs );
18903     }
18904 
18905   private:
18906     using layout::AndroidHardwareBufferFormatPropertiesANDROID::sType;
18907   };
18908   static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
18909   static_assert( std::is_standard_layout<AndroidHardwareBufferFormatPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
18910 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18911 
18912 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18913 
18914   namespace layout
18915   {
18916     struct AndroidHardwareBufferPropertiesANDROID
18917     {
18918     protected:
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferPropertiesANDROID18919       AndroidHardwareBufferPropertiesANDROID( vk::DeviceSize allocationSize_ = 0,
18920                                               uint32_t memoryTypeBits_ = 0 )
18921         : allocationSize( allocationSize_ )
18922         , memoryTypeBits( memoryTypeBits_ )
18923       {}
18924 
AndroidHardwareBufferPropertiesANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferPropertiesANDROID18925       AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs )
18926       {
18927         *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>(this) = rhs;
18928       }
18929 
operator =VULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferPropertiesANDROID18930       AndroidHardwareBufferPropertiesANDROID& operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs )
18931       {
18932         *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>(this) = rhs;
18933         return *this;
18934       }
18935 
18936     public:
18937       vk::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
18938       void* pNext = nullptr;
18939       vk::DeviceSize allocationSize;
18940       uint32_t memoryTypeBits;
18941     };
18942     static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "layout struct and wrapper have different size!" );
18943   }
18944 
18945   struct AndroidHardwareBufferPropertiesANDROID : public layout::AndroidHardwareBufferPropertiesANDROID
18946   {
operator VkAndroidHardwareBufferPropertiesANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18947     operator VkAndroidHardwareBufferPropertiesANDROID const&() const
18948     {
18949       return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
18950     }
18951 
operator VkAndroidHardwareBufferPropertiesANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18952     operator VkAndroidHardwareBufferPropertiesANDROID &()
18953     {
18954       return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
18955     }
18956 
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18957     bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
18958     {
18959       return ( sType == rhs.sType )
18960           && ( pNext == rhs.pNext )
18961           && ( allocationSize == rhs.allocationSize )
18962           && ( memoryTypeBits == rhs.memoryTypeBits );
18963     }
18964 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID18965     bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
18966     {
18967       return !operator==( rhs );
18968     }
18969 
18970   private:
18971     using layout::AndroidHardwareBufferPropertiesANDROID::sType;
18972   };
18973   static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
18974   static_assert( std::is_standard_layout<AndroidHardwareBufferPropertiesANDROID>::value, "struct wrapper is not a standard layout!" );
18975 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18976 
18977 #ifdef VK_USE_PLATFORM_ANDROID_KHR
18978 
18979   namespace layout
18980   {
18981     struct AndroidHardwareBufferUsageANDROID
18982     {
18983     protected:
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferUsageANDROID18984       AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = 0 )
18985         : androidHardwareBufferUsage( androidHardwareBufferUsage_ )
18986       {}
18987 
AndroidHardwareBufferUsageANDROIDVULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferUsageANDROID18988       AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs )
18989       {
18990         *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(this) = rhs;
18991       }
18992 
operator =VULKAN_HPP_NAMESPACE::layout::AndroidHardwareBufferUsageANDROID18993       AndroidHardwareBufferUsageANDROID& operator=( VkAndroidHardwareBufferUsageANDROID const & rhs )
18994       {
18995         *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(this) = rhs;
18996         return *this;
18997       }
18998 
18999     public:
19000       vk::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
19001       void* pNext = nullptr;
19002       uint64_t androidHardwareBufferUsage;
19003     };
19004     static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "layout struct and wrapper have different size!" );
19005   }
19006 
19007   struct AndroidHardwareBufferUsageANDROID : public layout::AndroidHardwareBufferUsageANDROID
19008   {
operator VkAndroidHardwareBufferUsageANDROID const&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID19009     operator VkAndroidHardwareBufferUsageANDROID const&() const
19010     {
19011       return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
19012     }
19013 
operator VkAndroidHardwareBufferUsageANDROID&VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID19014     operator VkAndroidHardwareBufferUsageANDROID &()
19015     {
19016       return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
19017     }
19018 
operator ==VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID19019     bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const
19020     {
19021       return ( sType == rhs.sType )
19022           && ( pNext == rhs.pNext )
19023           && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
19024     }
19025 
operator !=VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID19026     bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const
19027     {
19028       return !operator==( rhs );
19029     }
19030 
19031   private:
19032     using layout::AndroidHardwareBufferUsageANDROID::sType;
19033   };
19034   static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
19035   static_assert( std::is_standard_layout<AndroidHardwareBufferUsageANDROID>::value, "struct wrapper is not a standard layout!" );
19036 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19037 
19038 #ifdef VK_USE_PLATFORM_ANDROID_KHR
19039 
19040   namespace layout
19041   {
19042     struct AndroidSurfaceCreateInfoKHR
19043     {
19044     protected:
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::AndroidSurfaceCreateInfoKHR19045       AndroidSurfaceCreateInfoKHR( vk::AndroidSurfaceCreateFlagsKHR flags_ = vk::AndroidSurfaceCreateFlagsKHR(),
19046                                    struct ANativeWindow* window_ = nullptr )
19047         : flags( flags_ )
19048         , window( window_ )
19049       {}
19050 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::AndroidSurfaceCreateInfoKHR19051       AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs )
19052       {
19053         *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this) = rhs;
19054       }
19055 
operator =VULKAN_HPP_NAMESPACE::layout::AndroidSurfaceCreateInfoKHR19056       AndroidSurfaceCreateInfoKHR& operator=( VkAndroidSurfaceCreateInfoKHR const & rhs )
19057       {
19058         *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this) = rhs;
19059         return *this;
19060       }
19061 
19062     public:
19063       vk::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
19064       const void* pNext = nullptr;
19065       vk::AndroidSurfaceCreateFlagsKHR flags;
19066       struct ANativeWindow* window;
19067     };
19068     static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
19069   }
19070 
19071   struct AndroidSurfaceCreateInfoKHR : public layout::AndroidSurfaceCreateInfoKHR
19072   {
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19073     AndroidSurfaceCreateInfoKHR( vk::AndroidSurfaceCreateFlagsKHR flags_ = vk::AndroidSurfaceCreateFlagsKHR(),
19074                                  struct ANativeWindow* window_ = nullptr )
19075       : layout::AndroidSurfaceCreateInfoKHR( flags_, window_ )
19076     {}
19077 
AndroidSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19078     AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs )
19079       : layout::AndroidSurfaceCreateInfoKHR( rhs )
19080     {}
19081 
operator =VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19082     AndroidSurfaceCreateInfoKHR& operator=( VkAndroidSurfaceCreateInfoKHR const & rhs )
19083     {
19084       *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this) = rhs;
19085       return *this;
19086     }
19087 
setPNextVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19088     AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
19089     {
19090       pNext = pNext_;
19091       return *this;
19092     }
19093 
setFlagsVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19094     AndroidSurfaceCreateInfoKHR & setFlags( vk::AndroidSurfaceCreateFlagsKHR flags_ )
19095     {
19096       flags = flags_;
19097       return *this;
19098     }
19099 
setWindowVULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19100     AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ )
19101     {
19102       window = window_;
19103       return *this;
19104     }
19105 
operator VkAndroidSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19106     operator VkAndroidSurfaceCreateInfoKHR const&() const
19107     {
19108       return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
19109     }
19110 
operator VkAndroidSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19111     operator VkAndroidSurfaceCreateInfoKHR &()
19112     {
19113       return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
19114     }
19115 
operator ==VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19116     bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const
19117     {
19118       return ( sType == rhs.sType )
19119           && ( pNext == rhs.pNext )
19120           && ( flags == rhs.flags )
19121           && ( window == rhs.window );
19122     }
19123 
operator !=VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR19124     bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const
19125     {
19126       return !operator==( rhs );
19127     }
19128 
19129   private:
19130     using layout::AndroidSurfaceCreateInfoKHR::sType;
19131   };
19132   static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
19133   static_assert( std::is_standard_layout<AndroidSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
19134 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19135 
19136   namespace layout
19137   {
19138     struct ApplicationInfo
19139     {
19140     protected:
ApplicationInfoVULKAN_HPP_NAMESPACE::layout::ApplicationInfo19141       ApplicationInfo( const char* pApplicationName_ = nullptr,
19142                        uint32_t applicationVersion_ = 0,
19143                        const char* pEngineName_ = nullptr,
19144                        uint32_t engineVersion_ = 0,
19145                        uint32_t apiVersion_ = 0 )
19146         : pApplicationName( pApplicationName_ )
19147         , applicationVersion( applicationVersion_ )
19148         , pEngineName( pEngineName_ )
19149         , engineVersion( engineVersion_ )
19150         , apiVersion( apiVersion_ )
19151       {}
19152 
ApplicationInfoVULKAN_HPP_NAMESPACE::layout::ApplicationInfo19153       ApplicationInfo( VkApplicationInfo const & rhs )
19154       {
19155         *reinterpret_cast<VkApplicationInfo*>(this) = rhs;
19156       }
19157 
operator =VULKAN_HPP_NAMESPACE::layout::ApplicationInfo19158       ApplicationInfo& operator=( VkApplicationInfo const & rhs )
19159       {
19160         *reinterpret_cast<VkApplicationInfo*>(this) = rhs;
19161         return *this;
19162       }
19163 
19164     public:
19165       vk::StructureType sType = StructureType::eApplicationInfo;
19166       const void* pNext = nullptr;
19167       const char* pApplicationName;
19168       uint32_t applicationVersion;
19169       const char* pEngineName;
19170       uint32_t engineVersion;
19171       uint32_t apiVersion;
19172     };
19173     static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "layout struct and wrapper have different size!" );
19174   }
19175 
19176   struct ApplicationInfo : public layout::ApplicationInfo
19177   {
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo19178     ApplicationInfo( const char* pApplicationName_ = nullptr,
19179                      uint32_t applicationVersion_ = 0,
19180                      const char* pEngineName_ = nullptr,
19181                      uint32_t engineVersion_ = 0,
19182                      uint32_t apiVersion_ = 0 )
19183       : layout::ApplicationInfo( pApplicationName_, applicationVersion_, pEngineName_, engineVersion_, apiVersion_ )
19184     {}
19185 
ApplicationInfoVULKAN_HPP_NAMESPACE::ApplicationInfo19186     ApplicationInfo( VkApplicationInfo const & rhs )
19187       : layout::ApplicationInfo( rhs )
19188     {}
19189 
operator =VULKAN_HPP_NAMESPACE::ApplicationInfo19190     ApplicationInfo& operator=( VkApplicationInfo const & rhs )
19191     {
19192       *reinterpret_cast<VkApplicationInfo*>(this) = rhs;
19193       return *this;
19194     }
19195 
setPNextVULKAN_HPP_NAMESPACE::ApplicationInfo19196     ApplicationInfo & setPNext( const void* pNext_ )
19197     {
19198       pNext = pNext_;
19199       return *this;
19200     }
19201 
setPApplicationNameVULKAN_HPP_NAMESPACE::ApplicationInfo19202     ApplicationInfo & setPApplicationName( const char* pApplicationName_ )
19203     {
19204       pApplicationName = pApplicationName_;
19205       return *this;
19206     }
19207 
setApplicationVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19208     ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ )
19209     {
19210       applicationVersion = applicationVersion_;
19211       return *this;
19212     }
19213 
setPEngineNameVULKAN_HPP_NAMESPACE::ApplicationInfo19214     ApplicationInfo & setPEngineName( const char* pEngineName_ )
19215     {
19216       pEngineName = pEngineName_;
19217       return *this;
19218     }
19219 
setEngineVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19220     ApplicationInfo & setEngineVersion( uint32_t engineVersion_ )
19221     {
19222       engineVersion = engineVersion_;
19223       return *this;
19224     }
19225 
setApiVersionVULKAN_HPP_NAMESPACE::ApplicationInfo19226     ApplicationInfo & setApiVersion( uint32_t apiVersion_ )
19227     {
19228       apiVersion = apiVersion_;
19229       return *this;
19230     }
19231 
operator VkApplicationInfo const&VULKAN_HPP_NAMESPACE::ApplicationInfo19232     operator VkApplicationInfo const&() const
19233     {
19234       return *reinterpret_cast<const VkApplicationInfo*>( this );
19235     }
19236 
operator VkApplicationInfo&VULKAN_HPP_NAMESPACE::ApplicationInfo19237     operator VkApplicationInfo &()
19238     {
19239       return *reinterpret_cast<VkApplicationInfo*>( this );
19240     }
19241 
operator ==VULKAN_HPP_NAMESPACE::ApplicationInfo19242     bool operator==( ApplicationInfo const& rhs ) const
19243     {
19244       return ( sType == rhs.sType )
19245           && ( pNext == rhs.pNext )
19246           && ( pApplicationName == rhs.pApplicationName )
19247           && ( applicationVersion == rhs.applicationVersion )
19248           && ( pEngineName == rhs.pEngineName )
19249           && ( engineVersion == rhs.engineVersion )
19250           && ( apiVersion == rhs.apiVersion );
19251     }
19252 
operator !=VULKAN_HPP_NAMESPACE::ApplicationInfo19253     bool operator!=( ApplicationInfo const& rhs ) const
19254     {
19255       return !operator==( rhs );
19256     }
19257 
19258   private:
19259     using layout::ApplicationInfo::sType;
19260   };
19261   static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
19262   static_assert( std::is_standard_layout<ApplicationInfo>::value, "struct wrapper is not a standard layout!" );
19263 
19264   struct AttachmentDescription
19265   {
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription19266     AttachmentDescription( vk::AttachmentDescriptionFlags flags_ = vk::AttachmentDescriptionFlags(),
19267                            vk::Format format_ = vk::Format::eUndefined,
19268                            vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
19269                            vk::AttachmentLoadOp loadOp_ = vk::AttachmentLoadOp::eLoad,
19270                            vk::AttachmentStoreOp storeOp_ = vk::AttachmentStoreOp::eStore,
19271                            vk::AttachmentLoadOp stencilLoadOp_ = vk::AttachmentLoadOp::eLoad,
19272                            vk::AttachmentStoreOp stencilStoreOp_ = vk::AttachmentStoreOp::eStore,
19273                            vk::ImageLayout initialLayout_ = vk::ImageLayout::eUndefined,
19274                            vk::ImageLayout finalLayout_ = vk::ImageLayout::eUndefined )
19275         : flags( flags_ )
19276         , format( format_ )
19277         , samples( samples_ )
19278         , loadOp( loadOp_ )
19279         , storeOp( storeOp_ )
19280         , stencilLoadOp( stencilLoadOp_ )
19281         , stencilStoreOp( stencilStoreOp_ )
19282         , initialLayout( initialLayout_ )
19283         , finalLayout( finalLayout_ )
19284     {}
19285 
AttachmentDescriptionVULKAN_HPP_NAMESPACE::AttachmentDescription19286     AttachmentDescription( VkAttachmentDescription const & rhs )
19287     {
19288       *reinterpret_cast<VkAttachmentDescription*>(this) = rhs;
19289     }
19290 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription19291     AttachmentDescription& operator=( VkAttachmentDescription const & rhs )
19292     {
19293       *reinterpret_cast<VkAttachmentDescription*>(this) = rhs;
19294       return *this;
19295     }
19296 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription19297     AttachmentDescription & setFlags( vk::AttachmentDescriptionFlags flags_ )
19298     {
19299       flags = flags_;
19300       return *this;
19301     }
19302 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription19303     AttachmentDescription & setFormat( vk::Format format_ )
19304     {
19305       format = format_;
19306       return *this;
19307     }
19308 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription19309     AttachmentDescription & setSamples( vk::SampleCountFlagBits samples_ )
19310     {
19311       samples = samples_;
19312       return *this;
19313     }
19314 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription19315     AttachmentDescription & setLoadOp( vk::AttachmentLoadOp loadOp_ )
19316     {
19317       loadOp = loadOp_;
19318       return *this;
19319     }
19320 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription19321     AttachmentDescription & setStoreOp( vk::AttachmentStoreOp storeOp_ )
19322     {
19323       storeOp = storeOp_;
19324       return *this;
19325     }
19326 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription19327     AttachmentDescription & setStencilLoadOp( vk::AttachmentLoadOp stencilLoadOp_ )
19328     {
19329       stencilLoadOp = stencilLoadOp_;
19330       return *this;
19331     }
19332 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription19333     AttachmentDescription & setStencilStoreOp( vk::AttachmentStoreOp stencilStoreOp_ )
19334     {
19335       stencilStoreOp = stencilStoreOp_;
19336       return *this;
19337     }
19338 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription19339     AttachmentDescription & setInitialLayout( vk::ImageLayout initialLayout_ )
19340     {
19341       initialLayout = initialLayout_;
19342       return *this;
19343     }
19344 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription19345     AttachmentDescription & setFinalLayout( vk::ImageLayout finalLayout_ )
19346     {
19347       finalLayout = finalLayout_;
19348       return *this;
19349     }
19350 
operator VkAttachmentDescription const&VULKAN_HPP_NAMESPACE::AttachmentDescription19351     operator VkAttachmentDescription const&() const
19352     {
19353       return *reinterpret_cast<const VkAttachmentDescription*>( this );
19354     }
19355 
operator VkAttachmentDescription&VULKAN_HPP_NAMESPACE::AttachmentDescription19356     operator VkAttachmentDescription &()
19357     {
19358       return *reinterpret_cast<VkAttachmentDescription*>( this );
19359     }
19360 
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription19361     bool operator==( AttachmentDescription const& rhs ) const
19362     {
19363       return ( flags == rhs.flags )
19364           && ( format == rhs.format )
19365           && ( samples == rhs.samples )
19366           && ( loadOp == rhs.loadOp )
19367           && ( storeOp == rhs.storeOp )
19368           && ( stencilLoadOp == rhs.stencilLoadOp )
19369           && ( stencilStoreOp == rhs.stencilStoreOp )
19370           && ( initialLayout == rhs.initialLayout )
19371           && ( finalLayout == rhs.finalLayout );
19372     }
19373 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription19374     bool operator!=( AttachmentDescription const& rhs ) const
19375     {
19376       return !operator==( rhs );
19377     }
19378 
19379   public:
19380     vk::AttachmentDescriptionFlags flags;
19381     vk::Format format;
19382     vk::SampleCountFlagBits samples;
19383     vk::AttachmentLoadOp loadOp;
19384     vk::AttachmentStoreOp storeOp;
19385     vk::AttachmentLoadOp stencilLoadOp;
19386     vk::AttachmentStoreOp stencilStoreOp;
19387     vk::ImageLayout initialLayout;
19388     vk::ImageLayout finalLayout;
19389   };
19390   static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
19391   static_assert( std::is_standard_layout<AttachmentDescription>::value, "struct wrapper is not a standard layout!" );
19392 
19393   namespace layout
19394   {
19395     struct AttachmentDescription2KHR
19396     {
19397     protected:
AttachmentDescription2KHRVULKAN_HPP_NAMESPACE::layout::AttachmentDescription2KHR19398       AttachmentDescription2KHR( vk::AttachmentDescriptionFlags flags_ = vk::AttachmentDescriptionFlags(),
19399                                  vk::Format format_ = vk::Format::eUndefined,
19400                                  vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
19401                                  vk::AttachmentLoadOp loadOp_ = vk::AttachmentLoadOp::eLoad,
19402                                  vk::AttachmentStoreOp storeOp_ = vk::AttachmentStoreOp::eStore,
19403                                  vk::AttachmentLoadOp stencilLoadOp_ = vk::AttachmentLoadOp::eLoad,
19404                                  vk::AttachmentStoreOp stencilStoreOp_ = vk::AttachmentStoreOp::eStore,
19405                                  vk::ImageLayout initialLayout_ = vk::ImageLayout::eUndefined,
19406                                  vk::ImageLayout finalLayout_ = vk::ImageLayout::eUndefined )
19407         : flags( flags_ )
19408         , format( format_ )
19409         , samples( samples_ )
19410         , loadOp( loadOp_ )
19411         , storeOp( storeOp_ )
19412         , stencilLoadOp( stencilLoadOp_ )
19413         , stencilStoreOp( stencilStoreOp_ )
19414         , initialLayout( initialLayout_ )
19415         , finalLayout( finalLayout_ )
19416       {}
19417 
AttachmentDescription2KHRVULKAN_HPP_NAMESPACE::layout::AttachmentDescription2KHR19418       AttachmentDescription2KHR( VkAttachmentDescription2KHR const & rhs )
19419       {
19420         *reinterpret_cast<VkAttachmentDescription2KHR*>(this) = rhs;
19421       }
19422 
operator =VULKAN_HPP_NAMESPACE::layout::AttachmentDescription2KHR19423       AttachmentDescription2KHR& operator=( VkAttachmentDescription2KHR const & rhs )
19424       {
19425         *reinterpret_cast<VkAttachmentDescription2KHR*>(this) = rhs;
19426         return *this;
19427       }
19428 
19429     public:
19430       vk::StructureType sType = StructureType::eAttachmentDescription2KHR;
19431       const void* pNext = nullptr;
19432       vk::AttachmentDescriptionFlags flags;
19433       vk::Format format;
19434       vk::SampleCountFlagBits samples;
19435       vk::AttachmentLoadOp loadOp;
19436       vk::AttachmentStoreOp storeOp;
19437       vk::AttachmentLoadOp stencilLoadOp;
19438       vk::AttachmentStoreOp stencilStoreOp;
19439       vk::ImageLayout initialLayout;
19440       vk::ImageLayout finalLayout;
19441     };
19442     static_assert( sizeof( AttachmentDescription2KHR ) == sizeof( VkAttachmentDescription2KHR ), "layout struct and wrapper have different size!" );
19443   }
19444 
19445   struct AttachmentDescription2KHR : public layout::AttachmentDescription2KHR
19446   {
AttachmentDescription2KHRVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19447     AttachmentDescription2KHR( vk::AttachmentDescriptionFlags flags_ = vk::AttachmentDescriptionFlags(),
19448                                vk::Format format_ = vk::Format::eUndefined,
19449                                vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
19450                                vk::AttachmentLoadOp loadOp_ = vk::AttachmentLoadOp::eLoad,
19451                                vk::AttachmentStoreOp storeOp_ = vk::AttachmentStoreOp::eStore,
19452                                vk::AttachmentLoadOp stencilLoadOp_ = vk::AttachmentLoadOp::eLoad,
19453                                vk::AttachmentStoreOp stencilStoreOp_ = vk::AttachmentStoreOp::eStore,
19454                                vk::ImageLayout initialLayout_ = vk::ImageLayout::eUndefined,
19455                                vk::ImageLayout finalLayout_ = vk::ImageLayout::eUndefined )
19456       : layout::AttachmentDescription2KHR( flags_, format_, samples_, loadOp_, storeOp_, stencilLoadOp_, stencilStoreOp_, initialLayout_, finalLayout_ )
19457     {}
19458 
AttachmentDescription2KHRVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19459     AttachmentDescription2KHR( VkAttachmentDescription2KHR const & rhs )
19460       : layout::AttachmentDescription2KHR( rhs )
19461     {}
19462 
operator =VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19463     AttachmentDescription2KHR& operator=( VkAttachmentDescription2KHR const & rhs )
19464     {
19465       *reinterpret_cast<VkAttachmentDescription2KHR*>(this) = rhs;
19466       return *this;
19467     }
19468 
setPNextVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19469     AttachmentDescription2KHR & setPNext( const void* pNext_ )
19470     {
19471       pNext = pNext_;
19472       return *this;
19473     }
19474 
setFlagsVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19475     AttachmentDescription2KHR & setFlags( vk::AttachmentDescriptionFlags flags_ )
19476     {
19477       flags = flags_;
19478       return *this;
19479     }
19480 
setFormatVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19481     AttachmentDescription2KHR & setFormat( vk::Format format_ )
19482     {
19483       format = format_;
19484       return *this;
19485     }
19486 
setSamplesVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19487     AttachmentDescription2KHR & setSamples( vk::SampleCountFlagBits samples_ )
19488     {
19489       samples = samples_;
19490       return *this;
19491     }
19492 
setLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19493     AttachmentDescription2KHR & setLoadOp( vk::AttachmentLoadOp loadOp_ )
19494     {
19495       loadOp = loadOp_;
19496       return *this;
19497     }
19498 
setStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19499     AttachmentDescription2KHR & setStoreOp( vk::AttachmentStoreOp storeOp_ )
19500     {
19501       storeOp = storeOp_;
19502       return *this;
19503     }
19504 
setStencilLoadOpVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19505     AttachmentDescription2KHR & setStencilLoadOp( vk::AttachmentLoadOp stencilLoadOp_ )
19506     {
19507       stencilLoadOp = stencilLoadOp_;
19508       return *this;
19509     }
19510 
setStencilStoreOpVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19511     AttachmentDescription2KHR & setStencilStoreOp( vk::AttachmentStoreOp stencilStoreOp_ )
19512     {
19513       stencilStoreOp = stencilStoreOp_;
19514       return *this;
19515     }
19516 
setInitialLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19517     AttachmentDescription2KHR & setInitialLayout( vk::ImageLayout initialLayout_ )
19518     {
19519       initialLayout = initialLayout_;
19520       return *this;
19521     }
19522 
setFinalLayoutVULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19523     AttachmentDescription2KHR & setFinalLayout( vk::ImageLayout finalLayout_ )
19524     {
19525       finalLayout = finalLayout_;
19526       return *this;
19527     }
19528 
operator VkAttachmentDescription2KHR const&VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19529     operator VkAttachmentDescription2KHR const&() const
19530     {
19531       return *reinterpret_cast<const VkAttachmentDescription2KHR*>( this );
19532     }
19533 
operator VkAttachmentDescription2KHR&VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19534     operator VkAttachmentDescription2KHR &()
19535     {
19536       return *reinterpret_cast<VkAttachmentDescription2KHR*>( this );
19537     }
19538 
operator ==VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19539     bool operator==( AttachmentDescription2KHR const& rhs ) const
19540     {
19541       return ( sType == rhs.sType )
19542           && ( pNext == rhs.pNext )
19543           && ( flags == rhs.flags )
19544           && ( format == rhs.format )
19545           && ( samples == rhs.samples )
19546           && ( loadOp == rhs.loadOp )
19547           && ( storeOp == rhs.storeOp )
19548           && ( stencilLoadOp == rhs.stencilLoadOp )
19549           && ( stencilStoreOp == rhs.stencilStoreOp )
19550           && ( initialLayout == rhs.initialLayout )
19551           && ( finalLayout == rhs.finalLayout );
19552     }
19553 
operator !=VULKAN_HPP_NAMESPACE::AttachmentDescription2KHR19554     bool operator!=( AttachmentDescription2KHR const& rhs ) const
19555     {
19556       return !operator==( rhs );
19557     }
19558 
19559   private:
19560     using layout::AttachmentDescription2KHR::sType;
19561   };
19562   static_assert( sizeof( AttachmentDescription2KHR ) == sizeof( VkAttachmentDescription2KHR ), "struct and wrapper have different size!" );
19563   static_assert( std::is_standard_layout<AttachmentDescription2KHR>::value, "struct wrapper is not a standard layout!" );
19564 
19565   struct AttachmentReference
19566   {
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference19567     AttachmentReference( uint32_t attachment_ = 0,
19568                          vk::ImageLayout layout_ = vk::ImageLayout::eUndefined )
19569         : attachment( attachment_ )
19570         , layout( layout_ )
19571     {}
19572 
AttachmentReferenceVULKAN_HPP_NAMESPACE::AttachmentReference19573     AttachmentReference( VkAttachmentReference const & rhs )
19574     {
19575       *reinterpret_cast<VkAttachmentReference*>(this) = rhs;
19576     }
19577 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference19578     AttachmentReference& operator=( VkAttachmentReference const & rhs )
19579     {
19580       *reinterpret_cast<VkAttachmentReference*>(this) = rhs;
19581       return *this;
19582     }
19583 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference19584     AttachmentReference & setAttachment( uint32_t attachment_ )
19585     {
19586       attachment = attachment_;
19587       return *this;
19588     }
19589 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference19590     AttachmentReference & setLayout( vk::ImageLayout layout_ )
19591     {
19592       layout = layout_;
19593       return *this;
19594     }
19595 
operator VkAttachmentReference const&VULKAN_HPP_NAMESPACE::AttachmentReference19596     operator VkAttachmentReference const&() const
19597     {
19598       return *reinterpret_cast<const VkAttachmentReference*>( this );
19599     }
19600 
operator VkAttachmentReference&VULKAN_HPP_NAMESPACE::AttachmentReference19601     operator VkAttachmentReference &()
19602     {
19603       return *reinterpret_cast<VkAttachmentReference*>( this );
19604     }
19605 
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference19606     bool operator==( AttachmentReference const& rhs ) const
19607     {
19608       return ( attachment == rhs.attachment )
19609           && ( layout == rhs.layout );
19610     }
19611 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference19612     bool operator!=( AttachmentReference const& rhs ) const
19613     {
19614       return !operator==( rhs );
19615     }
19616 
19617   public:
19618     uint32_t attachment;
19619     vk::ImageLayout layout;
19620   };
19621   static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
19622   static_assert( std::is_standard_layout<AttachmentReference>::value, "struct wrapper is not a standard layout!" );
19623 
19624   namespace layout
19625   {
19626     struct AttachmentReference2KHR
19627     {
19628     protected:
AttachmentReference2KHRVULKAN_HPP_NAMESPACE::layout::AttachmentReference2KHR19629       AttachmentReference2KHR( uint32_t attachment_ = 0,
19630                                vk::ImageLayout layout_ = vk::ImageLayout::eUndefined,
19631                                vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags() )
19632         : attachment( attachment_ )
19633         , layout( layout_ )
19634         , aspectMask( aspectMask_ )
19635       {}
19636 
AttachmentReference2KHRVULKAN_HPP_NAMESPACE::layout::AttachmentReference2KHR19637       AttachmentReference2KHR( VkAttachmentReference2KHR const & rhs )
19638       {
19639         *reinterpret_cast<VkAttachmentReference2KHR*>(this) = rhs;
19640       }
19641 
operator =VULKAN_HPP_NAMESPACE::layout::AttachmentReference2KHR19642       AttachmentReference2KHR& operator=( VkAttachmentReference2KHR const & rhs )
19643       {
19644         *reinterpret_cast<VkAttachmentReference2KHR*>(this) = rhs;
19645         return *this;
19646       }
19647 
19648     public:
19649       vk::StructureType sType = StructureType::eAttachmentReference2KHR;
19650       const void* pNext = nullptr;
19651       uint32_t attachment;
19652       vk::ImageLayout layout;
19653       vk::ImageAspectFlags aspectMask;
19654     };
19655     static_assert( sizeof( AttachmentReference2KHR ) == sizeof( VkAttachmentReference2KHR ), "layout struct and wrapper have different size!" );
19656   }
19657 
19658   struct AttachmentReference2KHR : public layout::AttachmentReference2KHR
19659   {
AttachmentReference2KHRVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19660     AttachmentReference2KHR( uint32_t attachment_ = 0,
19661                              vk::ImageLayout layout_ = vk::ImageLayout::eUndefined,
19662                              vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags() )
19663       : layout::AttachmentReference2KHR( attachment_, layout_, aspectMask_ )
19664     {}
19665 
AttachmentReference2KHRVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19666     AttachmentReference2KHR( VkAttachmentReference2KHR const & rhs )
19667       : layout::AttachmentReference2KHR( rhs )
19668     {}
19669 
operator =VULKAN_HPP_NAMESPACE::AttachmentReference2KHR19670     AttachmentReference2KHR& operator=( VkAttachmentReference2KHR const & rhs )
19671     {
19672       *reinterpret_cast<VkAttachmentReference2KHR*>(this) = rhs;
19673       return *this;
19674     }
19675 
setPNextVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19676     AttachmentReference2KHR & setPNext( const void* pNext_ )
19677     {
19678       pNext = pNext_;
19679       return *this;
19680     }
19681 
setAttachmentVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19682     AttachmentReference2KHR & setAttachment( uint32_t attachment_ )
19683     {
19684       attachment = attachment_;
19685       return *this;
19686     }
19687 
setLayoutVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19688     AttachmentReference2KHR & setLayout( vk::ImageLayout layout_ )
19689     {
19690       layout = layout_;
19691       return *this;
19692     }
19693 
setAspectMaskVULKAN_HPP_NAMESPACE::AttachmentReference2KHR19694     AttachmentReference2KHR & setAspectMask( vk::ImageAspectFlags aspectMask_ )
19695     {
19696       aspectMask = aspectMask_;
19697       return *this;
19698     }
19699 
operator VkAttachmentReference2KHR const&VULKAN_HPP_NAMESPACE::AttachmentReference2KHR19700     operator VkAttachmentReference2KHR const&() const
19701     {
19702       return *reinterpret_cast<const VkAttachmentReference2KHR*>( this );
19703     }
19704 
operator VkAttachmentReference2KHR&VULKAN_HPP_NAMESPACE::AttachmentReference2KHR19705     operator VkAttachmentReference2KHR &()
19706     {
19707       return *reinterpret_cast<VkAttachmentReference2KHR*>( this );
19708     }
19709 
operator ==VULKAN_HPP_NAMESPACE::AttachmentReference2KHR19710     bool operator==( AttachmentReference2KHR const& rhs ) const
19711     {
19712       return ( sType == rhs.sType )
19713           && ( pNext == rhs.pNext )
19714           && ( attachment == rhs.attachment )
19715           && ( layout == rhs.layout )
19716           && ( aspectMask == rhs.aspectMask );
19717     }
19718 
operator !=VULKAN_HPP_NAMESPACE::AttachmentReference2KHR19719     bool operator!=( AttachmentReference2KHR const& rhs ) const
19720     {
19721       return !operator==( rhs );
19722     }
19723 
19724   private:
19725     using layout::AttachmentReference2KHR::sType;
19726   };
19727   static_assert( sizeof( AttachmentReference2KHR ) == sizeof( VkAttachmentReference2KHR ), "struct and wrapper have different size!" );
19728   static_assert( std::is_standard_layout<AttachmentReference2KHR>::value, "struct wrapper is not a standard layout!" );
19729 
19730   struct Extent2D
19731   {
Extent2DVULKAN_HPP_NAMESPACE::Extent2D19732     Extent2D( uint32_t width_ = 0,
19733               uint32_t height_ = 0 )
19734         : width( width_ )
19735         , height( height_ )
19736     {}
19737 
Extent2DVULKAN_HPP_NAMESPACE::Extent2D19738     Extent2D( VkExtent2D const & rhs )
19739     {
19740       *reinterpret_cast<VkExtent2D*>(this) = rhs;
19741     }
19742 
operator =VULKAN_HPP_NAMESPACE::Extent2D19743     Extent2D& operator=( VkExtent2D const & rhs )
19744     {
19745       *reinterpret_cast<VkExtent2D*>(this) = rhs;
19746       return *this;
19747     }
19748 
setWidthVULKAN_HPP_NAMESPACE::Extent2D19749     Extent2D & setWidth( uint32_t width_ )
19750     {
19751       width = width_;
19752       return *this;
19753     }
19754 
setHeightVULKAN_HPP_NAMESPACE::Extent2D19755     Extent2D & setHeight( uint32_t height_ )
19756     {
19757       height = height_;
19758       return *this;
19759     }
19760 
operator VkExtent2D const&VULKAN_HPP_NAMESPACE::Extent2D19761     operator VkExtent2D const&() const
19762     {
19763       return *reinterpret_cast<const VkExtent2D*>( this );
19764     }
19765 
operator VkExtent2D&VULKAN_HPP_NAMESPACE::Extent2D19766     operator VkExtent2D &()
19767     {
19768       return *reinterpret_cast<VkExtent2D*>( this );
19769     }
19770 
operator ==VULKAN_HPP_NAMESPACE::Extent2D19771     bool operator==( Extent2D const& rhs ) const
19772     {
19773       return ( width == rhs.width )
19774           && ( height == rhs.height );
19775     }
19776 
operator !=VULKAN_HPP_NAMESPACE::Extent2D19777     bool operator!=( Extent2D const& rhs ) const
19778     {
19779       return !operator==( rhs );
19780     }
19781 
19782   public:
19783     uint32_t width;
19784     uint32_t height;
19785   };
19786   static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
19787   static_assert( std::is_standard_layout<Extent2D>::value, "struct wrapper is not a standard layout!" );
19788 
19789   struct SampleLocationEXT
19790   {
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT19791     SampleLocationEXT( float x_ = 0,
19792                        float y_ = 0 )
19793         : x( x_ )
19794         , y( y_ )
19795     {}
19796 
SampleLocationEXTVULKAN_HPP_NAMESPACE::SampleLocationEXT19797     SampleLocationEXT( VkSampleLocationEXT const & rhs )
19798     {
19799       *reinterpret_cast<VkSampleLocationEXT*>(this) = rhs;
19800     }
19801 
operator =VULKAN_HPP_NAMESPACE::SampleLocationEXT19802     SampleLocationEXT& operator=( VkSampleLocationEXT const & rhs )
19803     {
19804       *reinterpret_cast<VkSampleLocationEXT*>(this) = rhs;
19805       return *this;
19806     }
19807 
setXVULKAN_HPP_NAMESPACE::SampleLocationEXT19808     SampleLocationEXT & setX( float x_ )
19809     {
19810       x = x_;
19811       return *this;
19812     }
19813 
setYVULKAN_HPP_NAMESPACE::SampleLocationEXT19814     SampleLocationEXT & setY( float y_ )
19815     {
19816       y = y_;
19817       return *this;
19818     }
19819 
operator VkSampleLocationEXT const&VULKAN_HPP_NAMESPACE::SampleLocationEXT19820     operator VkSampleLocationEXT const&() const
19821     {
19822       return *reinterpret_cast<const VkSampleLocationEXT*>( this );
19823     }
19824 
operator VkSampleLocationEXT&VULKAN_HPP_NAMESPACE::SampleLocationEXT19825     operator VkSampleLocationEXT &()
19826     {
19827       return *reinterpret_cast<VkSampleLocationEXT*>( this );
19828     }
19829 
operator ==VULKAN_HPP_NAMESPACE::SampleLocationEXT19830     bool operator==( SampleLocationEXT const& rhs ) const
19831     {
19832       return ( x == rhs.x )
19833           && ( y == rhs.y );
19834     }
19835 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationEXT19836     bool operator!=( SampleLocationEXT const& rhs ) const
19837     {
19838       return !operator==( rhs );
19839     }
19840 
19841   public:
19842     float x;
19843     float y;
19844   };
19845   static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
19846   static_assert( std::is_standard_layout<SampleLocationEXT>::value, "struct wrapper is not a standard layout!" );
19847 
19848   namespace layout
19849   {
19850     struct SampleLocationsInfoEXT
19851     {
19852     protected:
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::layout::SampleLocationsInfoEXT19853       SampleLocationsInfoEXT( vk::SampleCountFlagBits sampleLocationsPerPixel_ = vk::SampleCountFlagBits::e1,
19854                               vk::Extent2D sampleLocationGridSize_ = vk::Extent2D(),
19855                               uint32_t sampleLocationsCount_ = 0,
19856                               const vk::SampleLocationEXT* pSampleLocations_ = nullptr )
19857         : sampleLocationsPerPixel( sampleLocationsPerPixel_ )
19858         , sampleLocationGridSize( sampleLocationGridSize_ )
19859         , sampleLocationsCount( sampleLocationsCount_ )
19860         , pSampleLocations( pSampleLocations_ )
19861       {}
19862 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::layout::SampleLocationsInfoEXT19863       SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs )
19864       {
19865         *reinterpret_cast<VkSampleLocationsInfoEXT*>(this) = rhs;
19866       }
19867 
operator =VULKAN_HPP_NAMESPACE::layout::SampleLocationsInfoEXT19868       SampleLocationsInfoEXT& operator=( VkSampleLocationsInfoEXT const & rhs )
19869       {
19870         *reinterpret_cast<VkSampleLocationsInfoEXT*>(this) = rhs;
19871         return *this;
19872       }
19873 
19874     public:
19875       vk::StructureType sType = StructureType::eSampleLocationsInfoEXT;
19876       const void* pNext = nullptr;
19877       vk::SampleCountFlagBits sampleLocationsPerPixel;
19878       vk::Extent2D sampleLocationGridSize;
19879       uint32_t sampleLocationsCount;
19880       const vk::SampleLocationEXT* pSampleLocations;
19881     };
19882     static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "layout struct and wrapper have different size!" );
19883   }
19884 
19885   struct SampleLocationsInfoEXT : public layout::SampleLocationsInfoEXT
19886   {
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19887     SampleLocationsInfoEXT( vk::SampleCountFlagBits sampleLocationsPerPixel_ = vk::SampleCountFlagBits::e1,
19888                             vk::Extent2D sampleLocationGridSize_ = vk::Extent2D(),
19889                             uint32_t sampleLocationsCount_ = 0,
19890                             const vk::SampleLocationEXT* pSampleLocations_ = nullptr )
19891       : layout::SampleLocationsInfoEXT( sampleLocationsPerPixel_, sampleLocationGridSize_, sampleLocationsCount_, pSampleLocations_ )
19892     {}
19893 
SampleLocationsInfoEXTVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19894     SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs )
19895       : layout::SampleLocationsInfoEXT( rhs )
19896     {}
19897 
operator =VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19898     SampleLocationsInfoEXT& operator=( VkSampleLocationsInfoEXT const & rhs )
19899     {
19900       *reinterpret_cast<VkSampleLocationsInfoEXT*>(this) = rhs;
19901       return *this;
19902     }
19903 
setPNextVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19904     SampleLocationsInfoEXT & setPNext( const void* pNext_ )
19905     {
19906       pNext = pNext_;
19907       return *this;
19908     }
19909 
setSampleLocationsPerPixelVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19910     SampleLocationsInfoEXT & setSampleLocationsPerPixel( vk::SampleCountFlagBits sampleLocationsPerPixel_ )
19911     {
19912       sampleLocationsPerPixel = sampleLocationsPerPixel_;
19913       return *this;
19914     }
19915 
setSampleLocationGridSizeVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19916     SampleLocationsInfoEXT & setSampleLocationGridSize( vk::Extent2D sampleLocationGridSize_ )
19917     {
19918       sampleLocationGridSize = sampleLocationGridSize_;
19919       return *this;
19920     }
19921 
setSampleLocationsCountVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19922     SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ )
19923     {
19924       sampleLocationsCount = sampleLocationsCount_;
19925       return *this;
19926     }
19927 
setPSampleLocationsVULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19928     SampleLocationsInfoEXT & setPSampleLocations( const vk::SampleLocationEXT* pSampleLocations_ )
19929     {
19930       pSampleLocations = pSampleLocations_;
19931       return *this;
19932     }
19933 
operator VkSampleLocationsInfoEXT const&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19934     operator VkSampleLocationsInfoEXT const&() const
19935     {
19936       return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
19937     }
19938 
operator VkSampleLocationsInfoEXT&VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19939     operator VkSampleLocationsInfoEXT &()
19940     {
19941       return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
19942     }
19943 
operator ==VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19944     bool operator==( SampleLocationsInfoEXT const& rhs ) const
19945     {
19946       return ( sType == rhs.sType )
19947           && ( pNext == rhs.pNext )
19948           && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
19949           && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
19950           && ( sampleLocationsCount == rhs.sampleLocationsCount )
19951           && ( pSampleLocations == rhs.pSampleLocations );
19952     }
19953 
operator !=VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT19954     bool operator!=( SampleLocationsInfoEXT const& rhs ) const
19955     {
19956       return !operator==( rhs );
19957     }
19958 
19959   private:
19960     using layout::SampleLocationsInfoEXT::sType;
19961   };
19962   static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
19963   static_assert( std::is_standard_layout<SampleLocationsInfoEXT>::value, "struct wrapper is not a standard layout!" );
19964 
19965   struct AttachmentSampleLocationsEXT
19966   {
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19967     AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = 0,
19968                                   vk::SampleLocationsInfoEXT sampleLocationsInfo_ = vk::SampleLocationsInfoEXT() )
19969         : attachmentIndex( attachmentIndex_ )
19970         , sampleLocationsInfo( sampleLocationsInfo_ )
19971     {}
19972 
AttachmentSampleLocationsEXTVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19973     AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs )
19974     {
19975       *reinterpret_cast<VkAttachmentSampleLocationsEXT*>(this) = rhs;
19976     }
19977 
operator =VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19978     AttachmentSampleLocationsEXT& operator=( VkAttachmentSampleLocationsEXT const & rhs )
19979     {
19980       *reinterpret_cast<VkAttachmentSampleLocationsEXT*>(this) = rhs;
19981       return *this;
19982     }
19983 
setAttachmentIndexVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19984     AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ )
19985     {
19986       attachmentIndex = attachmentIndex_;
19987       return *this;
19988     }
19989 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19990     AttachmentSampleLocationsEXT & setSampleLocationsInfo( vk::SampleLocationsInfoEXT sampleLocationsInfo_ )
19991     {
19992       sampleLocationsInfo = sampleLocationsInfo_;
19993       return *this;
19994     }
19995 
operator VkAttachmentSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT19996     operator VkAttachmentSampleLocationsEXT const&() const
19997     {
19998       return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
19999     }
20000 
operator VkAttachmentSampleLocationsEXT&VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20001     operator VkAttachmentSampleLocationsEXT &()
20002     {
20003       return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
20004     }
20005 
operator ==VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20006     bool operator==( AttachmentSampleLocationsEXT const& rhs ) const
20007     {
20008       return ( attachmentIndex == rhs.attachmentIndex )
20009           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
20010     }
20011 
operator !=VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT20012     bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const
20013     {
20014       return !operator==( rhs );
20015     }
20016 
20017   public:
20018     uint32_t attachmentIndex;
20019     vk::SampleLocationsInfoEXT sampleLocationsInfo;
20020   };
20021   static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
20022   static_assert( std::is_standard_layout<AttachmentSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
20023 
20024   namespace layout
20025   {
20026     struct BaseInStructure
20027     {
20028     protected:
BaseInStructureVULKAN_HPP_NAMESPACE::layout::BaseInStructure20029       BaseInStructure()
20030 
20031       {}
20032 
BaseInStructureVULKAN_HPP_NAMESPACE::layout::BaseInStructure20033       BaseInStructure( VkBaseInStructure const & rhs )
20034       {
20035         *reinterpret_cast<VkBaseInStructure*>(this) = rhs;
20036       }
20037 
operator =VULKAN_HPP_NAMESPACE::layout::BaseInStructure20038       BaseInStructure& operator=( VkBaseInStructure const & rhs )
20039       {
20040         *reinterpret_cast<VkBaseInStructure*>(this) = rhs;
20041         return *this;
20042       }
20043 
20044     public:
20045       vk::StructureType sType;
20046       const struct vk::BaseInStructure* pNext = nullptr;
20047     };
20048     static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "layout struct and wrapper have different size!" );
20049   }
20050 
20051   struct BaseInStructure : public layout::BaseInStructure
20052   {
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure20053     BaseInStructure()
20054 
20055       : layout::BaseInStructure(  )
20056     {}
20057 
BaseInStructureVULKAN_HPP_NAMESPACE::BaseInStructure20058     BaseInStructure( VkBaseInStructure const & rhs )
20059       : layout::BaseInStructure( rhs )
20060     {}
20061 
operator =VULKAN_HPP_NAMESPACE::BaseInStructure20062     BaseInStructure& operator=( VkBaseInStructure const & rhs )
20063     {
20064       *reinterpret_cast<VkBaseInStructure*>(this) = rhs;
20065       return *this;
20066     }
20067 
setPNextVULKAN_HPP_NAMESPACE::BaseInStructure20068     BaseInStructure & setPNext( const struct vk::BaseInStructure* pNext_ )
20069     {
20070       pNext = pNext_;
20071       return *this;
20072     }
20073 
operator VkBaseInStructure const&VULKAN_HPP_NAMESPACE::BaseInStructure20074     operator VkBaseInStructure const&() const
20075     {
20076       return *reinterpret_cast<const VkBaseInStructure*>( this );
20077     }
20078 
operator VkBaseInStructure&VULKAN_HPP_NAMESPACE::BaseInStructure20079     operator VkBaseInStructure &()
20080     {
20081       return *reinterpret_cast<VkBaseInStructure*>( this );
20082     }
20083 
operator ==VULKAN_HPP_NAMESPACE::BaseInStructure20084     bool operator==( BaseInStructure const& rhs ) const
20085     {
20086       return ( sType == rhs.sType )
20087           && ( pNext == rhs.pNext );
20088     }
20089 
operator !=VULKAN_HPP_NAMESPACE::BaseInStructure20090     bool operator!=( BaseInStructure const& rhs ) const
20091     {
20092       return !operator==( rhs );
20093     }
20094 
20095   private:
20096     using layout::BaseInStructure::sType;
20097   };
20098   static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
20099   static_assert( std::is_standard_layout<BaseInStructure>::value, "struct wrapper is not a standard layout!" );
20100 
20101   namespace layout
20102   {
20103     struct BaseOutStructure
20104     {
20105     protected:
BaseOutStructureVULKAN_HPP_NAMESPACE::layout::BaseOutStructure20106       BaseOutStructure()
20107 
20108       {}
20109 
BaseOutStructureVULKAN_HPP_NAMESPACE::layout::BaseOutStructure20110       BaseOutStructure( VkBaseOutStructure const & rhs )
20111       {
20112         *reinterpret_cast<VkBaseOutStructure*>(this) = rhs;
20113       }
20114 
operator =VULKAN_HPP_NAMESPACE::layout::BaseOutStructure20115       BaseOutStructure& operator=( VkBaseOutStructure const & rhs )
20116       {
20117         *reinterpret_cast<VkBaseOutStructure*>(this) = rhs;
20118         return *this;
20119       }
20120 
20121     public:
20122       vk::StructureType sType;
20123       struct vk::BaseOutStructure* pNext = nullptr;
20124     };
20125     static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "layout struct and wrapper have different size!" );
20126   }
20127 
20128   struct BaseOutStructure : public layout::BaseOutStructure
20129   {
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure20130     BaseOutStructure()
20131 
20132       : layout::BaseOutStructure(  )
20133     {}
20134 
BaseOutStructureVULKAN_HPP_NAMESPACE::BaseOutStructure20135     BaseOutStructure( VkBaseOutStructure const & rhs )
20136       : layout::BaseOutStructure( rhs )
20137     {}
20138 
operator =VULKAN_HPP_NAMESPACE::BaseOutStructure20139     BaseOutStructure& operator=( VkBaseOutStructure const & rhs )
20140     {
20141       *reinterpret_cast<VkBaseOutStructure*>(this) = rhs;
20142       return *this;
20143     }
20144 
setPNextVULKAN_HPP_NAMESPACE::BaseOutStructure20145     BaseOutStructure & setPNext( struct vk::BaseOutStructure* pNext_ )
20146     {
20147       pNext = pNext_;
20148       return *this;
20149     }
20150 
operator VkBaseOutStructure const&VULKAN_HPP_NAMESPACE::BaseOutStructure20151     operator VkBaseOutStructure const&() const
20152     {
20153       return *reinterpret_cast<const VkBaseOutStructure*>( this );
20154     }
20155 
operator VkBaseOutStructure&VULKAN_HPP_NAMESPACE::BaseOutStructure20156     operator VkBaseOutStructure &()
20157     {
20158       return *reinterpret_cast<VkBaseOutStructure*>( this );
20159     }
20160 
operator ==VULKAN_HPP_NAMESPACE::BaseOutStructure20161     bool operator==( BaseOutStructure const& rhs ) const
20162     {
20163       return ( sType == rhs.sType )
20164           && ( pNext == rhs.pNext );
20165     }
20166 
operator !=VULKAN_HPP_NAMESPACE::BaseOutStructure20167     bool operator!=( BaseOutStructure const& rhs ) const
20168     {
20169       return !operator==( rhs );
20170     }
20171 
20172   private:
20173     using layout::BaseOutStructure::sType;
20174   };
20175   static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
20176   static_assert( std::is_standard_layout<BaseOutStructure>::value, "struct wrapper is not a standard layout!" );
20177 
20178   namespace layout
20179   {
20180     struct BindAccelerationStructureMemoryInfoNV
20181     {
20182     protected:
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::layout::BindAccelerationStructureMemoryInfoNV20183       BindAccelerationStructureMemoryInfoNV( vk::AccelerationStructureNV accelerationStructure_ = vk::AccelerationStructureNV(),
20184                                              vk::DeviceMemory memory_ = vk::DeviceMemory(),
20185                                              vk::DeviceSize memoryOffset_ = 0,
20186                                              uint32_t deviceIndexCount_ = 0,
20187                                              const uint32_t* pDeviceIndices_ = nullptr )
20188         : accelerationStructure( accelerationStructure_ )
20189         , memory( memory_ )
20190         , memoryOffset( memoryOffset_ )
20191         , deviceIndexCount( deviceIndexCount_ )
20192         , pDeviceIndices( pDeviceIndices_ )
20193       {}
20194 
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::layout::BindAccelerationStructureMemoryInfoNV20195       BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs )
20196       {
20197         *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>(this) = rhs;
20198       }
20199 
operator =VULKAN_HPP_NAMESPACE::layout::BindAccelerationStructureMemoryInfoNV20200       BindAccelerationStructureMemoryInfoNV& operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs )
20201       {
20202         *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>(this) = rhs;
20203         return *this;
20204       }
20205 
20206     public:
20207       vk::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
20208       const void* pNext = nullptr;
20209       vk::AccelerationStructureNV accelerationStructure;
20210       vk::DeviceMemory memory;
20211       vk::DeviceSize memoryOffset;
20212       uint32_t deviceIndexCount;
20213       const uint32_t* pDeviceIndices;
20214     };
20215     static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "layout struct and wrapper have different size!" );
20216   }
20217 
20218   struct BindAccelerationStructureMemoryInfoNV : public layout::BindAccelerationStructureMemoryInfoNV
20219   {
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20220     BindAccelerationStructureMemoryInfoNV( vk::AccelerationStructureNV accelerationStructure_ = vk::AccelerationStructureNV(),
20221                                            vk::DeviceMemory memory_ = vk::DeviceMemory(),
20222                                            vk::DeviceSize memoryOffset_ = 0,
20223                                            uint32_t deviceIndexCount_ = 0,
20224                                            const uint32_t* pDeviceIndices_ = nullptr )
20225       : layout::BindAccelerationStructureMemoryInfoNV( accelerationStructure_, memory_, memoryOffset_, deviceIndexCount_, pDeviceIndices_ )
20226     {}
20227 
BindAccelerationStructureMemoryInfoNVVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20228     BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs )
20229       : layout::BindAccelerationStructureMemoryInfoNV( rhs )
20230     {}
20231 
operator =VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20232     BindAccelerationStructureMemoryInfoNV& operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs )
20233     {
20234       *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>(this) = rhs;
20235       return *this;
20236     }
20237 
setPNextVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20238     BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ )
20239     {
20240       pNext = pNext_;
20241       return *this;
20242     }
20243 
setAccelerationStructureVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20244     BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( vk::AccelerationStructureNV accelerationStructure_ )
20245     {
20246       accelerationStructure = accelerationStructure_;
20247       return *this;
20248     }
20249 
setMemoryVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20250     BindAccelerationStructureMemoryInfoNV & setMemory( vk::DeviceMemory memory_ )
20251     {
20252       memory = memory_;
20253       return *this;
20254     }
20255 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20256     BindAccelerationStructureMemoryInfoNV & setMemoryOffset( vk::DeviceSize memoryOffset_ )
20257     {
20258       memoryOffset = memoryOffset_;
20259       return *this;
20260     }
20261 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20262     BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ )
20263     {
20264       deviceIndexCount = deviceIndexCount_;
20265       return *this;
20266     }
20267 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20268     BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
20269     {
20270       pDeviceIndices = pDeviceIndices_;
20271       return *this;
20272     }
20273 
operator VkBindAccelerationStructureMemoryInfoNV const&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20274     operator VkBindAccelerationStructureMemoryInfoNV const&() const
20275     {
20276       return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( this );
20277     }
20278 
operator VkBindAccelerationStructureMemoryInfoNV&VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20279     operator VkBindAccelerationStructureMemoryInfoNV &()
20280     {
20281       return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>( this );
20282     }
20283 
operator ==VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20284     bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const
20285     {
20286       return ( sType == rhs.sType )
20287           && ( pNext == rhs.pNext )
20288           && ( accelerationStructure == rhs.accelerationStructure )
20289           && ( memory == rhs.memory )
20290           && ( memoryOffset == rhs.memoryOffset )
20291           && ( deviceIndexCount == rhs.deviceIndexCount )
20292           && ( pDeviceIndices == rhs.pDeviceIndices );
20293     }
20294 
operator !=VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV20295     bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const
20296     {
20297       return !operator==( rhs );
20298     }
20299 
20300   private:
20301     using layout::BindAccelerationStructureMemoryInfoNV::sType;
20302   };
20303   static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" );
20304   static_assert( std::is_standard_layout<BindAccelerationStructureMemoryInfoNV>::value, "struct wrapper is not a standard layout!" );
20305 
20306   namespace layout
20307   {
20308     struct BindBufferMemoryDeviceGroupInfo
20309     {
20310     protected:
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::layout::BindBufferMemoryDeviceGroupInfo20311       BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
20312                                        const uint32_t* pDeviceIndices_ = nullptr )
20313         : deviceIndexCount( deviceIndexCount_ )
20314         , pDeviceIndices( pDeviceIndices_ )
20315       {}
20316 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::layout::BindBufferMemoryDeviceGroupInfo20317       BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs )
20318       {
20319         *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this) = rhs;
20320       }
20321 
operator =VULKAN_HPP_NAMESPACE::layout::BindBufferMemoryDeviceGroupInfo20322       BindBufferMemoryDeviceGroupInfo& operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs )
20323       {
20324         *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this) = rhs;
20325         return *this;
20326       }
20327 
20328     public:
20329       vk::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
20330       const void* pNext = nullptr;
20331       uint32_t deviceIndexCount;
20332       const uint32_t* pDeviceIndices;
20333     };
20334     static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "layout struct and wrapper have different size!" );
20335   }
20336 
20337   struct BindBufferMemoryDeviceGroupInfo : public layout::BindBufferMemoryDeviceGroupInfo
20338   {
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20339     BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
20340                                      const uint32_t* pDeviceIndices_ = nullptr )
20341       : layout::BindBufferMemoryDeviceGroupInfo( deviceIndexCount_, pDeviceIndices_ )
20342     {}
20343 
BindBufferMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20344     BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs )
20345       : layout::BindBufferMemoryDeviceGroupInfo( rhs )
20346     {}
20347 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20348     BindBufferMemoryDeviceGroupInfo& operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs )
20349     {
20350       *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this) = rhs;
20351       return *this;
20352     }
20353 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20354     BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ )
20355     {
20356       pNext = pNext_;
20357       return *this;
20358     }
20359 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20360     BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ )
20361     {
20362       deviceIndexCount = deviceIndexCount_;
20363       return *this;
20364     }
20365 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20366     BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
20367     {
20368       pDeviceIndices = pDeviceIndices_;
20369       return *this;
20370     }
20371 
operator VkBindBufferMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20372     operator VkBindBufferMemoryDeviceGroupInfo const&() const
20373     {
20374       return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
20375     }
20376 
operator VkBindBufferMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20377     operator VkBindBufferMemoryDeviceGroupInfo &()
20378     {
20379       return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
20380     }
20381 
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20382     bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const
20383     {
20384       return ( sType == rhs.sType )
20385           && ( pNext == rhs.pNext )
20386           && ( deviceIndexCount == rhs.deviceIndexCount )
20387           && ( pDeviceIndices == rhs.pDeviceIndices );
20388     }
20389 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo20390     bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const
20391     {
20392       return !operator==( rhs );
20393     }
20394 
20395   private:
20396     using layout::BindBufferMemoryDeviceGroupInfo::sType;
20397   };
20398   static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
20399   static_assert( std::is_standard_layout<BindBufferMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
20400 
20401   namespace layout
20402   {
20403     struct BindBufferMemoryInfo
20404     {
20405     protected:
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindBufferMemoryInfo20406       BindBufferMemoryInfo( vk::Buffer buffer_ = vk::Buffer(),
20407                             vk::DeviceMemory memory_ = vk::DeviceMemory(),
20408                             vk::DeviceSize memoryOffset_ = 0 )
20409         : buffer( buffer_ )
20410         , memory( memory_ )
20411         , memoryOffset( memoryOffset_ )
20412       {}
20413 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindBufferMemoryInfo20414       BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs )
20415       {
20416         *reinterpret_cast<VkBindBufferMemoryInfo*>(this) = rhs;
20417       }
20418 
operator =VULKAN_HPP_NAMESPACE::layout::BindBufferMemoryInfo20419       BindBufferMemoryInfo& operator=( VkBindBufferMemoryInfo const & rhs )
20420       {
20421         *reinterpret_cast<VkBindBufferMemoryInfo*>(this) = rhs;
20422         return *this;
20423       }
20424 
20425     public:
20426       vk::StructureType sType = StructureType::eBindBufferMemoryInfo;
20427       const void* pNext = nullptr;
20428       vk::Buffer buffer;
20429       vk::DeviceMemory memory;
20430       vk::DeviceSize memoryOffset;
20431     };
20432     static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "layout struct and wrapper have different size!" );
20433   }
20434 
20435   struct BindBufferMemoryInfo : public layout::BindBufferMemoryInfo
20436   {
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20437     BindBufferMemoryInfo( vk::Buffer buffer_ = vk::Buffer(),
20438                           vk::DeviceMemory memory_ = vk::DeviceMemory(),
20439                           vk::DeviceSize memoryOffset_ = 0 )
20440       : layout::BindBufferMemoryInfo( buffer_, memory_, memoryOffset_ )
20441     {}
20442 
BindBufferMemoryInfoVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20443     BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs )
20444       : layout::BindBufferMemoryInfo( rhs )
20445     {}
20446 
operator =VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20447     BindBufferMemoryInfo& operator=( VkBindBufferMemoryInfo const & rhs )
20448     {
20449       *reinterpret_cast<VkBindBufferMemoryInfo*>(this) = rhs;
20450       return *this;
20451     }
20452 
setPNextVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20453     BindBufferMemoryInfo & setPNext( const void* pNext_ )
20454     {
20455       pNext = pNext_;
20456       return *this;
20457     }
20458 
setBufferVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20459     BindBufferMemoryInfo & setBuffer( vk::Buffer buffer_ )
20460     {
20461       buffer = buffer_;
20462       return *this;
20463     }
20464 
setMemoryVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20465     BindBufferMemoryInfo & setMemory( vk::DeviceMemory memory_ )
20466     {
20467       memory = memory_;
20468       return *this;
20469     }
20470 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20471     BindBufferMemoryInfo & setMemoryOffset( vk::DeviceSize memoryOffset_ )
20472     {
20473       memoryOffset = memoryOffset_;
20474       return *this;
20475     }
20476 
operator VkBindBufferMemoryInfo const&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20477     operator VkBindBufferMemoryInfo const&() const
20478     {
20479       return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
20480     }
20481 
operator VkBindBufferMemoryInfo&VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20482     operator VkBindBufferMemoryInfo &()
20483     {
20484       return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
20485     }
20486 
operator ==VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20487     bool operator==( BindBufferMemoryInfo const& rhs ) const
20488     {
20489       return ( sType == rhs.sType )
20490           && ( pNext == rhs.pNext )
20491           && ( buffer == rhs.buffer )
20492           && ( memory == rhs.memory )
20493           && ( memoryOffset == rhs.memoryOffset );
20494     }
20495 
operator !=VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo20496     bool operator!=( BindBufferMemoryInfo const& rhs ) const
20497     {
20498       return !operator==( rhs );
20499     }
20500 
20501   private:
20502     using layout::BindBufferMemoryInfo::sType;
20503   };
20504   static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
20505   static_assert( std::is_standard_layout<BindBufferMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20506 
20507   struct Offset2D
20508   {
Offset2DVULKAN_HPP_NAMESPACE::Offset2D20509     Offset2D( int32_t x_ = 0,
20510               int32_t y_ = 0 )
20511         : x( x_ )
20512         , y( y_ )
20513     {}
20514 
Offset2DVULKAN_HPP_NAMESPACE::Offset2D20515     Offset2D( VkOffset2D const & rhs )
20516     {
20517       *reinterpret_cast<VkOffset2D*>(this) = rhs;
20518     }
20519 
operator =VULKAN_HPP_NAMESPACE::Offset2D20520     Offset2D& operator=( VkOffset2D const & rhs )
20521     {
20522       *reinterpret_cast<VkOffset2D*>(this) = rhs;
20523       return *this;
20524     }
20525 
setXVULKAN_HPP_NAMESPACE::Offset2D20526     Offset2D & setX( int32_t x_ )
20527     {
20528       x = x_;
20529       return *this;
20530     }
20531 
setYVULKAN_HPP_NAMESPACE::Offset2D20532     Offset2D & setY( int32_t y_ )
20533     {
20534       y = y_;
20535       return *this;
20536     }
20537 
operator VkOffset2D const&VULKAN_HPP_NAMESPACE::Offset2D20538     operator VkOffset2D const&() const
20539     {
20540       return *reinterpret_cast<const VkOffset2D*>( this );
20541     }
20542 
operator VkOffset2D&VULKAN_HPP_NAMESPACE::Offset2D20543     operator VkOffset2D &()
20544     {
20545       return *reinterpret_cast<VkOffset2D*>( this );
20546     }
20547 
operator ==VULKAN_HPP_NAMESPACE::Offset2D20548     bool operator==( Offset2D const& rhs ) const
20549     {
20550       return ( x == rhs.x )
20551           && ( y == rhs.y );
20552     }
20553 
operator !=VULKAN_HPP_NAMESPACE::Offset2D20554     bool operator!=( Offset2D const& rhs ) const
20555     {
20556       return !operator==( rhs );
20557     }
20558 
20559   public:
20560     int32_t x;
20561     int32_t y;
20562   };
20563   static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
20564   static_assert( std::is_standard_layout<Offset2D>::value, "struct wrapper is not a standard layout!" );
20565 
20566   struct Rect2D
20567   {
Rect2DVULKAN_HPP_NAMESPACE::Rect2D20568     Rect2D( vk::Offset2D offset_ = vk::Offset2D(),
20569             vk::Extent2D extent_ = vk::Extent2D() )
20570         : offset( offset_ )
20571         , extent( extent_ )
20572     {}
20573 
Rect2DVULKAN_HPP_NAMESPACE::Rect2D20574     Rect2D( VkRect2D const & rhs )
20575     {
20576       *reinterpret_cast<VkRect2D*>(this) = rhs;
20577     }
20578 
operator =VULKAN_HPP_NAMESPACE::Rect2D20579     Rect2D& operator=( VkRect2D const & rhs )
20580     {
20581       *reinterpret_cast<VkRect2D*>(this) = rhs;
20582       return *this;
20583     }
20584 
setOffsetVULKAN_HPP_NAMESPACE::Rect2D20585     Rect2D & setOffset( vk::Offset2D offset_ )
20586     {
20587       offset = offset_;
20588       return *this;
20589     }
20590 
setExtentVULKAN_HPP_NAMESPACE::Rect2D20591     Rect2D & setExtent( vk::Extent2D extent_ )
20592     {
20593       extent = extent_;
20594       return *this;
20595     }
20596 
operator VkRect2D const&VULKAN_HPP_NAMESPACE::Rect2D20597     operator VkRect2D const&() const
20598     {
20599       return *reinterpret_cast<const VkRect2D*>( this );
20600     }
20601 
operator VkRect2D&VULKAN_HPP_NAMESPACE::Rect2D20602     operator VkRect2D &()
20603     {
20604       return *reinterpret_cast<VkRect2D*>( this );
20605     }
20606 
operator ==VULKAN_HPP_NAMESPACE::Rect2D20607     bool operator==( Rect2D const& rhs ) const
20608     {
20609       return ( offset == rhs.offset )
20610           && ( extent == rhs.extent );
20611     }
20612 
operator !=VULKAN_HPP_NAMESPACE::Rect2D20613     bool operator!=( Rect2D const& rhs ) const
20614     {
20615       return !operator==( rhs );
20616     }
20617 
20618   public:
20619     vk::Offset2D offset;
20620     vk::Extent2D extent;
20621   };
20622   static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
20623   static_assert( std::is_standard_layout<Rect2D>::value, "struct wrapper is not a standard layout!" );
20624 
20625   namespace layout
20626   {
20627     struct BindImageMemoryDeviceGroupInfo
20628     {
20629     protected:
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::layout::BindImageMemoryDeviceGroupInfo20630       BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
20631                                       const uint32_t* pDeviceIndices_ = nullptr,
20632                                       uint32_t splitInstanceBindRegionCount_ = 0,
20633                                       const vk::Rect2D* pSplitInstanceBindRegions_ = nullptr )
20634         : deviceIndexCount( deviceIndexCount_ )
20635         , pDeviceIndices( pDeviceIndices_ )
20636         , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
20637         , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
20638       {}
20639 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::layout::BindImageMemoryDeviceGroupInfo20640       BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs )
20641       {
20642         *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this) = rhs;
20643       }
20644 
operator =VULKAN_HPP_NAMESPACE::layout::BindImageMemoryDeviceGroupInfo20645       BindImageMemoryDeviceGroupInfo& operator=( VkBindImageMemoryDeviceGroupInfo const & rhs )
20646       {
20647         *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this) = rhs;
20648         return *this;
20649       }
20650 
20651     public:
20652       vk::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
20653       const void* pNext = nullptr;
20654       uint32_t deviceIndexCount;
20655       const uint32_t* pDeviceIndices;
20656       uint32_t splitInstanceBindRegionCount;
20657       const vk::Rect2D* pSplitInstanceBindRegions;
20658     };
20659     static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "layout struct and wrapper have different size!" );
20660   }
20661 
20662   struct BindImageMemoryDeviceGroupInfo : public layout::BindImageMemoryDeviceGroupInfo
20663   {
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20664     BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
20665                                     const uint32_t* pDeviceIndices_ = nullptr,
20666                                     uint32_t splitInstanceBindRegionCount_ = 0,
20667                                     const vk::Rect2D* pSplitInstanceBindRegions_ = nullptr )
20668       : layout::BindImageMemoryDeviceGroupInfo( deviceIndexCount_, pDeviceIndices_, splitInstanceBindRegionCount_, pSplitInstanceBindRegions_ )
20669     {}
20670 
BindImageMemoryDeviceGroupInfoVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20671     BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs )
20672       : layout::BindImageMemoryDeviceGroupInfo( rhs )
20673     {}
20674 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20675     BindImageMemoryDeviceGroupInfo& operator=( VkBindImageMemoryDeviceGroupInfo const & rhs )
20676     {
20677       *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this) = rhs;
20678       return *this;
20679     }
20680 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20681     BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ )
20682     {
20683       pNext = pNext_;
20684       return *this;
20685     }
20686 
setDeviceIndexCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20687     BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ )
20688     {
20689       deviceIndexCount = deviceIndexCount_;
20690       return *this;
20691     }
20692 
setPDeviceIndicesVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20693     BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
20694     {
20695       pDeviceIndices = pDeviceIndices_;
20696       return *this;
20697     }
20698 
setSplitInstanceBindRegionCountVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20699     BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ )
20700     {
20701       splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
20702       return *this;
20703     }
20704 
setPSplitInstanceBindRegionsVULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20705     BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const vk::Rect2D* pSplitInstanceBindRegions_ )
20706     {
20707       pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
20708       return *this;
20709     }
20710 
operator VkBindImageMemoryDeviceGroupInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20711     operator VkBindImageMemoryDeviceGroupInfo const&() const
20712     {
20713       return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
20714     }
20715 
operator VkBindImageMemoryDeviceGroupInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20716     operator VkBindImageMemoryDeviceGroupInfo &()
20717     {
20718       return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
20719     }
20720 
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20721     bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const
20722     {
20723       return ( sType == rhs.sType )
20724           && ( pNext == rhs.pNext )
20725           && ( deviceIndexCount == rhs.deviceIndexCount )
20726           && ( pDeviceIndices == rhs.pDeviceIndices )
20727           && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
20728           && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
20729     }
20730 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo20731     bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const
20732     {
20733       return !operator==( rhs );
20734     }
20735 
20736   private:
20737     using layout::BindImageMemoryDeviceGroupInfo::sType;
20738   };
20739   static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
20740   static_assert( std::is_standard_layout<BindImageMemoryDeviceGroupInfo>::value, "struct wrapper is not a standard layout!" );
20741 
20742   namespace layout
20743   {
20744     struct BindImageMemoryInfo
20745     {
20746     protected:
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindImageMemoryInfo20747       BindImageMemoryInfo( vk::Image image_ = vk::Image(),
20748                            vk::DeviceMemory memory_ = vk::DeviceMemory(),
20749                            vk::DeviceSize memoryOffset_ = 0 )
20750         : image( image_ )
20751         , memory( memory_ )
20752         , memoryOffset( memoryOffset_ )
20753       {}
20754 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindImageMemoryInfo20755       BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs )
20756       {
20757         *reinterpret_cast<VkBindImageMemoryInfo*>(this) = rhs;
20758       }
20759 
operator =VULKAN_HPP_NAMESPACE::layout::BindImageMemoryInfo20760       BindImageMemoryInfo& operator=( VkBindImageMemoryInfo const & rhs )
20761       {
20762         *reinterpret_cast<VkBindImageMemoryInfo*>(this) = rhs;
20763         return *this;
20764       }
20765 
20766     public:
20767       vk::StructureType sType = StructureType::eBindImageMemoryInfo;
20768       const void* pNext = nullptr;
20769       vk::Image image;
20770       vk::DeviceMemory memory;
20771       vk::DeviceSize memoryOffset;
20772     };
20773     static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "layout struct and wrapper have different size!" );
20774   }
20775 
20776   struct BindImageMemoryInfo : public layout::BindImageMemoryInfo
20777   {
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20778     BindImageMemoryInfo( vk::Image image_ = vk::Image(),
20779                          vk::DeviceMemory memory_ = vk::DeviceMemory(),
20780                          vk::DeviceSize memoryOffset_ = 0 )
20781       : layout::BindImageMemoryInfo( image_, memory_, memoryOffset_ )
20782     {}
20783 
BindImageMemoryInfoVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20784     BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs )
20785       : layout::BindImageMemoryInfo( rhs )
20786     {}
20787 
operator =VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20788     BindImageMemoryInfo& operator=( VkBindImageMemoryInfo const & rhs )
20789     {
20790       *reinterpret_cast<VkBindImageMemoryInfo*>(this) = rhs;
20791       return *this;
20792     }
20793 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20794     BindImageMemoryInfo & setPNext( const void* pNext_ )
20795     {
20796       pNext = pNext_;
20797       return *this;
20798     }
20799 
setImageVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20800     BindImageMemoryInfo & setImage( vk::Image image_ )
20801     {
20802       image = image_;
20803       return *this;
20804     }
20805 
setMemoryVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20806     BindImageMemoryInfo & setMemory( vk::DeviceMemory memory_ )
20807     {
20808       memory = memory_;
20809       return *this;
20810     }
20811 
setMemoryOffsetVULKAN_HPP_NAMESPACE::BindImageMemoryInfo20812     BindImageMemoryInfo & setMemoryOffset( vk::DeviceSize memoryOffset_ )
20813     {
20814       memoryOffset = memoryOffset_;
20815       return *this;
20816     }
20817 
operator VkBindImageMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20818     operator VkBindImageMemoryInfo const&() const
20819     {
20820       return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
20821     }
20822 
operator VkBindImageMemoryInfo&VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20823     operator VkBindImageMemoryInfo &()
20824     {
20825       return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
20826     }
20827 
operator ==VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20828     bool operator==( BindImageMemoryInfo const& rhs ) const
20829     {
20830       return ( sType == rhs.sType )
20831           && ( pNext == rhs.pNext )
20832           && ( image == rhs.image )
20833           && ( memory == rhs.memory )
20834           && ( memoryOffset == rhs.memoryOffset );
20835     }
20836 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemoryInfo20837     bool operator!=( BindImageMemoryInfo const& rhs ) const
20838     {
20839       return !operator==( rhs );
20840     }
20841 
20842   private:
20843     using layout::BindImageMemoryInfo::sType;
20844   };
20845   static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
20846   static_assert( std::is_standard_layout<BindImageMemoryInfo>::value, "struct wrapper is not a standard layout!" );
20847 
20848   namespace layout
20849   {
20850     struct BindImageMemorySwapchainInfoKHR
20851     {
20852     protected:
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::layout::BindImageMemorySwapchainInfoKHR20853       BindImageMemorySwapchainInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR(),
20854                                        uint32_t imageIndex_ = 0 )
20855         : swapchain( swapchain_ )
20856         , imageIndex( imageIndex_ )
20857       {}
20858 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::layout::BindImageMemorySwapchainInfoKHR20859       BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs )
20860       {
20861         *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this) = rhs;
20862       }
20863 
operator =VULKAN_HPP_NAMESPACE::layout::BindImageMemorySwapchainInfoKHR20864       BindImageMemorySwapchainInfoKHR& operator=( VkBindImageMemorySwapchainInfoKHR const & rhs )
20865       {
20866         *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this) = rhs;
20867         return *this;
20868       }
20869 
20870     public:
20871       vk::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
20872       const void* pNext = nullptr;
20873       vk::SwapchainKHR swapchain;
20874       uint32_t imageIndex;
20875     };
20876     static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "layout struct and wrapper have different size!" );
20877   }
20878 
20879   struct BindImageMemorySwapchainInfoKHR : public layout::BindImageMemorySwapchainInfoKHR
20880   {
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20881     BindImageMemorySwapchainInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR(),
20882                                      uint32_t imageIndex_ = 0 )
20883       : layout::BindImageMemorySwapchainInfoKHR( swapchain_, imageIndex_ )
20884     {}
20885 
BindImageMemorySwapchainInfoKHRVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20886     BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs )
20887       : layout::BindImageMemorySwapchainInfoKHR( rhs )
20888     {}
20889 
operator =VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20890     BindImageMemorySwapchainInfoKHR& operator=( VkBindImageMemorySwapchainInfoKHR const & rhs )
20891     {
20892       *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this) = rhs;
20893       return *this;
20894     }
20895 
setPNextVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20896     BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ )
20897     {
20898       pNext = pNext_;
20899       return *this;
20900     }
20901 
setSwapchainVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20902     BindImageMemorySwapchainInfoKHR & setSwapchain( vk::SwapchainKHR swapchain_ )
20903     {
20904       swapchain = swapchain_;
20905       return *this;
20906     }
20907 
setImageIndexVULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20908     BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ )
20909     {
20910       imageIndex = imageIndex_;
20911       return *this;
20912     }
20913 
operator VkBindImageMemorySwapchainInfoKHR const&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20914     operator VkBindImageMemorySwapchainInfoKHR const&() const
20915     {
20916       return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
20917     }
20918 
operator VkBindImageMemorySwapchainInfoKHR&VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20919     operator VkBindImageMemorySwapchainInfoKHR &()
20920     {
20921       return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
20922     }
20923 
operator ==VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20924     bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const
20925     {
20926       return ( sType == rhs.sType )
20927           && ( pNext == rhs.pNext )
20928           && ( swapchain == rhs.swapchain )
20929           && ( imageIndex == rhs.imageIndex );
20930     }
20931 
operator !=VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR20932     bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const
20933     {
20934       return !operator==( rhs );
20935     }
20936 
20937   private:
20938     using layout::BindImageMemorySwapchainInfoKHR::sType;
20939   };
20940   static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
20941   static_assert( std::is_standard_layout<BindImageMemorySwapchainInfoKHR>::value, "struct wrapper is not a standard layout!" );
20942 
20943   namespace layout
20944   {
20945     struct BindImagePlaneMemoryInfo
20946     {
20947     protected:
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindImagePlaneMemoryInfo20948       BindImagePlaneMemoryInfo( vk::ImageAspectFlagBits planeAspect_ = vk::ImageAspectFlagBits::eColor )
20949         : planeAspect( planeAspect_ )
20950       {}
20951 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::layout::BindImagePlaneMemoryInfo20952       BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs )
20953       {
20954         *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this) = rhs;
20955       }
20956 
operator =VULKAN_HPP_NAMESPACE::layout::BindImagePlaneMemoryInfo20957       BindImagePlaneMemoryInfo& operator=( VkBindImagePlaneMemoryInfo const & rhs )
20958       {
20959         *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this) = rhs;
20960         return *this;
20961       }
20962 
20963     public:
20964       vk::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
20965       const void* pNext = nullptr;
20966       vk::ImageAspectFlagBits planeAspect;
20967     };
20968     static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "layout struct and wrapper have different size!" );
20969   }
20970 
20971   struct BindImagePlaneMemoryInfo : public layout::BindImagePlaneMemoryInfo
20972   {
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20973     BindImagePlaneMemoryInfo( vk::ImageAspectFlagBits planeAspect_ = vk::ImageAspectFlagBits::eColor )
20974       : layout::BindImagePlaneMemoryInfo( planeAspect_ )
20975     {}
20976 
BindImagePlaneMemoryInfoVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20977     BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs )
20978       : layout::BindImagePlaneMemoryInfo( rhs )
20979     {}
20980 
operator =VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20981     BindImagePlaneMemoryInfo& operator=( VkBindImagePlaneMemoryInfo const & rhs )
20982     {
20983       *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this) = rhs;
20984       return *this;
20985     }
20986 
setPNextVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20987     BindImagePlaneMemoryInfo & setPNext( const void* pNext_ )
20988     {
20989       pNext = pNext_;
20990       return *this;
20991     }
20992 
setPlaneAspectVULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20993     BindImagePlaneMemoryInfo & setPlaneAspect( vk::ImageAspectFlagBits planeAspect_ )
20994     {
20995       planeAspect = planeAspect_;
20996       return *this;
20997     }
20998 
operator VkBindImagePlaneMemoryInfo const&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo20999     operator VkBindImagePlaneMemoryInfo const&() const
21000     {
21001       return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
21002     }
21003 
operator VkBindImagePlaneMemoryInfo&VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21004     operator VkBindImagePlaneMemoryInfo &()
21005     {
21006       return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
21007     }
21008 
operator ==VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21009     bool operator==( BindImagePlaneMemoryInfo const& rhs ) const
21010     {
21011       return ( sType == rhs.sType )
21012           && ( pNext == rhs.pNext )
21013           && ( planeAspect == rhs.planeAspect );
21014     }
21015 
operator !=VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo21016     bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const
21017     {
21018       return !operator==( rhs );
21019     }
21020 
21021   private:
21022     using layout::BindImagePlaneMemoryInfo::sType;
21023   };
21024   static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
21025   static_assert( std::is_standard_layout<BindImagePlaneMemoryInfo>::value, "struct wrapper is not a standard layout!" );
21026 
21027   struct SparseMemoryBind
21028   {
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind21029     SparseMemoryBind( vk::DeviceSize resourceOffset_ = 0,
21030                       vk::DeviceSize size_ = 0,
21031                       vk::DeviceMemory memory_ = vk::DeviceMemory(),
21032                       vk::DeviceSize memoryOffset_ = 0,
21033                       vk::SparseMemoryBindFlags flags_ = vk::SparseMemoryBindFlags() )
21034         : resourceOffset( resourceOffset_ )
21035         , size( size_ )
21036         , memory( memory_ )
21037         , memoryOffset( memoryOffset_ )
21038         , flags( flags_ )
21039     {}
21040 
SparseMemoryBindVULKAN_HPP_NAMESPACE::SparseMemoryBind21041     SparseMemoryBind( VkSparseMemoryBind const & rhs )
21042     {
21043       *reinterpret_cast<VkSparseMemoryBind*>(this) = rhs;
21044     }
21045 
operator =VULKAN_HPP_NAMESPACE::SparseMemoryBind21046     SparseMemoryBind& operator=( VkSparseMemoryBind const & rhs )
21047     {
21048       *reinterpret_cast<VkSparseMemoryBind*>(this) = rhs;
21049       return *this;
21050     }
21051 
setResourceOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind21052     SparseMemoryBind & setResourceOffset( vk::DeviceSize resourceOffset_ )
21053     {
21054       resourceOffset = resourceOffset_;
21055       return *this;
21056     }
21057 
setSizeVULKAN_HPP_NAMESPACE::SparseMemoryBind21058     SparseMemoryBind & setSize( vk::DeviceSize size_ )
21059     {
21060       size = size_;
21061       return *this;
21062     }
21063 
setMemoryVULKAN_HPP_NAMESPACE::SparseMemoryBind21064     SparseMemoryBind & setMemory( vk::DeviceMemory memory_ )
21065     {
21066       memory = memory_;
21067       return *this;
21068     }
21069 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseMemoryBind21070     SparseMemoryBind & setMemoryOffset( vk::DeviceSize memoryOffset_ )
21071     {
21072       memoryOffset = memoryOffset_;
21073       return *this;
21074     }
21075 
setFlagsVULKAN_HPP_NAMESPACE::SparseMemoryBind21076     SparseMemoryBind & setFlags( vk::SparseMemoryBindFlags flags_ )
21077     {
21078       flags = flags_;
21079       return *this;
21080     }
21081 
operator VkSparseMemoryBind const&VULKAN_HPP_NAMESPACE::SparseMemoryBind21082     operator VkSparseMemoryBind const&() const
21083     {
21084       return *reinterpret_cast<const VkSparseMemoryBind*>( this );
21085     }
21086 
operator VkSparseMemoryBind&VULKAN_HPP_NAMESPACE::SparseMemoryBind21087     operator VkSparseMemoryBind &()
21088     {
21089       return *reinterpret_cast<VkSparseMemoryBind*>( this );
21090     }
21091 
operator ==VULKAN_HPP_NAMESPACE::SparseMemoryBind21092     bool operator==( SparseMemoryBind const& rhs ) const
21093     {
21094       return ( resourceOffset == rhs.resourceOffset )
21095           && ( size == rhs.size )
21096           && ( memory == rhs.memory )
21097           && ( memoryOffset == rhs.memoryOffset )
21098           && ( flags == rhs.flags );
21099     }
21100 
operator !=VULKAN_HPP_NAMESPACE::SparseMemoryBind21101     bool operator!=( SparseMemoryBind const& rhs ) const
21102     {
21103       return !operator==( rhs );
21104     }
21105 
21106   public:
21107     vk::DeviceSize resourceOffset;
21108     vk::DeviceSize size;
21109     vk::DeviceMemory memory;
21110     vk::DeviceSize memoryOffset;
21111     vk::SparseMemoryBindFlags flags;
21112   };
21113   static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
21114   static_assert( std::is_standard_layout<SparseMemoryBind>::value, "struct wrapper is not a standard layout!" );
21115 
21116   struct SparseBufferMemoryBindInfo
21117   {
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21118     SparseBufferMemoryBindInfo( vk::Buffer buffer_ = vk::Buffer(),
21119                                 uint32_t bindCount_ = 0,
21120                                 const vk::SparseMemoryBind* pBinds_ = nullptr )
21121         : buffer( buffer_ )
21122         , bindCount( bindCount_ )
21123         , pBinds( pBinds_ )
21124     {}
21125 
SparseBufferMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21126     SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs )
21127     {
21128       *reinterpret_cast<VkSparseBufferMemoryBindInfo*>(this) = rhs;
21129     }
21130 
operator =VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21131     SparseBufferMemoryBindInfo& operator=( VkSparseBufferMemoryBindInfo const & rhs )
21132     {
21133       *reinterpret_cast<VkSparseBufferMemoryBindInfo*>(this) = rhs;
21134       return *this;
21135     }
21136 
setBufferVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21137     SparseBufferMemoryBindInfo & setBuffer( vk::Buffer buffer_ )
21138     {
21139       buffer = buffer_;
21140       return *this;
21141     }
21142 
setBindCountVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21143     SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ )
21144     {
21145       bindCount = bindCount_;
21146       return *this;
21147     }
21148 
setPBindsVULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21149     SparseBufferMemoryBindInfo & setPBinds( const vk::SparseMemoryBind* pBinds_ )
21150     {
21151       pBinds = pBinds_;
21152       return *this;
21153     }
21154 
operator VkSparseBufferMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21155     operator VkSparseBufferMemoryBindInfo const&() const
21156     {
21157       return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
21158     }
21159 
operator VkSparseBufferMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21160     operator VkSparseBufferMemoryBindInfo &()
21161     {
21162       return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
21163     }
21164 
operator ==VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21165     bool operator==( SparseBufferMemoryBindInfo const& rhs ) const
21166     {
21167       return ( buffer == rhs.buffer )
21168           && ( bindCount == rhs.bindCount )
21169           && ( pBinds == rhs.pBinds );
21170     }
21171 
operator !=VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo21172     bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const
21173     {
21174       return !operator==( rhs );
21175     }
21176 
21177   public:
21178     vk::Buffer buffer;
21179     uint32_t bindCount;
21180     const vk::SparseMemoryBind* pBinds;
21181   };
21182   static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
21183   static_assert( std::is_standard_layout<SparseBufferMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21184 
21185   struct SparseImageOpaqueMemoryBindInfo
21186   {
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21187     SparseImageOpaqueMemoryBindInfo( vk::Image image_ = vk::Image(),
21188                                      uint32_t bindCount_ = 0,
21189                                      const vk::SparseMemoryBind* pBinds_ = nullptr )
21190         : image( image_ )
21191         , bindCount( bindCount_ )
21192         , pBinds( pBinds_ )
21193     {}
21194 
SparseImageOpaqueMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21195     SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs )
21196     {
21197       *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>(this) = rhs;
21198     }
21199 
operator =VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21200     SparseImageOpaqueMemoryBindInfo& operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs )
21201     {
21202       *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>(this) = rhs;
21203       return *this;
21204     }
21205 
setImageVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21206     SparseImageOpaqueMemoryBindInfo & setImage( vk::Image image_ )
21207     {
21208       image = image_;
21209       return *this;
21210     }
21211 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21212     SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ )
21213     {
21214       bindCount = bindCount_;
21215       return *this;
21216     }
21217 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21218     SparseImageOpaqueMemoryBindInfo & setPBinds( const vk::SparseMemoryBind* pBinds_ )
21219     {
21220       pBinds = pBinds_;
21221       return *this;
21222     }
21223 
operator VkSparseImageOpaqueMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21224     operator VkSparseImageOpaqueMemoryBindInfo const&() const
21225     {
21226       return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
21227     }
21228 
operator VkSparseImageOpaqueMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21229     operator VkSparseImageOpaqueMemoryBindInfo &()
21230     {
21231       return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
21232     }
21233 
operator ==VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21234     bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const
21235     {
21236       return ( image == rhs.image )
21237           && ( bindCount == rhs.bindCount )
21238           && ( pBinds == rhs.pBinds );
21239     }
21240 
operator !=VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo21241     bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const
21242     {
21243       return !operator==( rhs );
21244     }
21245 
21246   public:
21247     vk::Image image;
21248     uint32_t bindCount;
21249     const vk::SparseMemoryBind* pBinds;
21250   };
21251   static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
21252   static_assert( std::is_standard_layout<SparseImageOpaqueMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21253 
21254   struct ImageSubresource
21255   {
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource21256     ImageSubresource( vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags(),
21257                       uint32_t mipLevel_ = 0,
21258                       uint32_t arrayLayer_ = 0 )
21259         : aspectMask( aspectMask_ )
21260         , mipLevel( mipLevel_ )
21261         , arrayLayer( arrayLayer_ )
21262     {}
21263 
ImageSubresourceVULKAN_HPP_NAMESPACE::ImageSubresource21264     ImageSubresource( VkImageSubresource const & rhs )
21265     {
21266       *reinterpret_cast<VkImageSubresource*>(this) = rhs;
21267     }
21268 
operator =VULKAN_HPP_NAMESPACE::ImageSubresource21269     ImageSubresource& operator=( VkImageSubresource const & rhs )
21270     {
21271       *reinterpret_cast<VkImageSubresource*>(this) = rhs;
21272       return *this;
21273     }
21274 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresource21275     ImageSubresource & setAspectMask( vk::ImageAspectFlags aspectMask_ )
21276     {
21277       aspectMask = aspectMask_;
21278       return *this;
21279     }
21280 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresource21281     ImageSubresource & setMipLevel( uint32_t mipLevel_ )
21282     {
21283       mipLevel = mipLevel_;
21284       return *this;
21285     }
21286 
setArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresource21287     ImageSubresource & setArrayLayer( uint32_t arrayLayer_ )
21288     {
21289       arrayLayer = arrayLayer_;
21290       return *this;
21291     }
21292 
operator VkImageSubresource const&VULKAN_HPP_NAMESPACE::ImageSubresource21293     operator VkImageSubresource const&() const
21294     {
21295       return *reinterpret_cast<const VkImageSubresource*>( this );
21296     }
21297 
operator VkImageSubresource&VULKAN_HPP_NAMESPACE::ImageSubresource21298     operator VkImageSubresource &()
21299     {
21300       return *reinterpret_cast<VkImageSubresource*>( this );
21301     }
21302 
operator ==VULKAN_HPP_NAMESPACE::ImageSubresource21303     bool operator==( ImageSubresource const& rhs ) const
21304     {
21305       return ( aspectMask == rhs.aspectMask )
21306           && ( mipLevel == rhs.mipLevel )
21307           && ( arrayLayer == rhs.arrayLayer );
21308     }
21309 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresource21310     bool operator!=( ImageSubresource const& rhs ) const
21311     {
21312       return !operator==( rhs );
21313     }
21314 
21315   public:
21316     vk::ImageAspectFlags aspectMask;
21317     uint32_t mipLevel;
21318     uint32_t arrayLayer;
21319   };
21320   static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
21321   static_assert( std::is_standard_layout<ImageSubresource>::value, "struct wrapper is not a standard layout!" );
21322 
21323   struct Offset3D
21324   {
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21325     Offset3D( int32_t x_ = 0,
21326               int32_t y_ = 0,
21327               int32_t z_ = 0 )
21328         : x( x_ )
21329         , y( y_ )
21330         , z( z_ )
21331     {}
21332 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21333     explicit Offset3D( Offset2D const& offset2D,
21334                        int32_t z_ = 0 )
21335       : x( offset2D.x )
21336       , y( offset2D.y )
21337       , z( z_ )
21338 
21339     {}
21340 
Offset3DVULKAN_HPP_NAMESPACE::Offset3D21341     Offset3D( VkOffset3D const & rhs )
21342     {
21343       *reinterpret_cast<VkOffset3D*>(this) = rhs;
21344     }
21345 
operator =VULKAN_HPP_NAMESPACE::Offset3D21346     Offset3D& operator=( VkOffset3D const & rhs )
21347     {
21348       *reinterpret_cast<VkOffset3D*>(this) = rhs;
21349       return *this;
21350     }
21351 
setXVULKAN_HPP_NAMESPACE::Offset3D21352     Offset3D & setX( int32_t x_ )
21353     {
21354       x = x_;
21355       return *this;
21356     }
21357 
setYVULKAN_HPP_NAMESPACE::Offset3D21358     Offset3D & setY( int32_t y_ )
21359     {
21360       y = y_;
21361       return *this;
21362     }
21363 
setZVULKAN_HPP_NAMESPACE::Offset3D21364     Offset3D & setZ( int32_t z_ )
21365     {
21366       z = z_;
21367       return *this;
21368     }
21369 
operator VkOffset3D const&VULKAN_HPP_NAMESPACE::Offset3D21370     operator VkOffset3D const&() const
21371     {
21372       return *reinterpret_cast<const VkOffset3D*>( this );
21373     }
21374 
operator VkOffset3D&VULKAN_HPP_NAMESPACE::Offset3D21375     operator VkOffset3D &()
21376     {
21377       return *reinterpret_cast<VkOffset3D*>( this );
21378     }
21379 
operator ==VULKAN_HPP_NAMESPACE::Offset3D21380     bool operator==( Offset3D const& rhs ) const
21381     {
21382       return ( x == rhs.x )
21383           && ( y == rhs.y )
21384           && ( z == rhs.z );
21385     }
21386 
operator !=VULKAN_HPP_NAMESPACE::Offset3D21387     bool operator!=( Offset3D const& rhs ) const
21388     {
21389       return !operator==( rhs );
21390     }
21391 
21392   public:
21393     int32_t x;
21394     int32_t y;
21395     int32_t z;
21396   };
21397   static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
21398   static_assert( std::is_standard_layout<Offset3D>::value, "struct wrapper is not a standard layout!" );
21399 
21400   struct Extent3D
21401   {
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21402     Extent3D( uint32_t width_ = 0,
21403               uint32_t height_ = 0,
21404               uint32_t depth_ = 0 )
21405         : width( width_ )
21406         , height( height_ )
21407         , depth( depth_ )
21408     {}
21409 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21410     explicit Extent3D( Extent2D const& extent2D,
21411                        uint32_t depth_ = 0 )
21412       : width( extent2D.width )
21413       , height( extent2D.height )
21414       , depth( depth_ )
21415 
21416     {}
21417 
Extent3DVULKAN_HPP_NAMESPACE::Extent3D21418     Extent3D( VkExtent3D const & rhs )
21419     {
21420       *reinterpret_cast<VkExtent3D*>(this) = rhs;
21421     }
21422 
operator =VULKAN_HPP_NAMESPACE::Extent3D21423     Extent3D& operator=( VkExtent3D const & rhs )
21424     {
21425       *reinterpret_cast<VkExtent3D*>(this) = rhs;
21426       return *this;
21427     }
21428 
setWidthVULKAN_HPP_NAMESPACE::Extent3D21429     Extent3D & setWidth( uint32_t width_ )
21430     {
21431       width = width_;
21432       return *this;
21433     }
21434 
setHeightVULKAN_HPP_NAMESPACE::Extent3D21435     Extent3D & setHeight( uint32_t height_ )
21436     {
21437       height = height_;
21438       return *this;
21439     }
21440 
setDepthVULKAN_HPP_NAMESPACE::Extent3D21441     Extent3D & setDepth( uint32_t depth_ )
21442     {
21443       depth = depth_;
21444       return *this;
21445     }
21446 
operator VkExtent3D const&VULKAN_HPP_NAMESPACE::Extent3D21447     operator VkExtent3D const&() const
21448     {
21449       return *reinterpret_cast<const VkExtent3D*>( this );
21450     }
21451 
operator VkExtent3D&VULKAN_HPP_NAMESPACE::Extent3D21452     operator VkExtent3D &()
21453     {
21454       return *reinterpret_cast<VkExtent3D*>( this );
21455     }
21456 
operator ==VULKAN_HPP_NAMESPACE::Extent3D21457     bool operator==( Extent3D const& rhs ) const
21458     {
21459       return ( width == rhs.width )
21460           && ( height == rhs.height )
21461           && ( depth == rhs.depth );
21462     }
21463 
operator !=VULKAN_HPP_NAMESPACE::Extent3D21464     bool operator!=( Extent3D const& rhs ) const
21465     {
21466       return !operator==( rhs );
21467     }
21468 
21469   public:
21470     uint32_t width;
21471     uint32_t height;
21472     uint32_t depth;
21473   };
21474   static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
21475   static_assert( std::is_standard_layout<Extent3D>::value, "struct wrapper is not a standard layout!" );
21476 
21477   struct SparseImageMemoryBind
21478   {
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21479     SparseImageMemoryBind( vk::ImageSubresource subresource_ = vk::ImageSubresource(),
21480                            vk::Offset3D offset_ = vk::Offset3D(),
21481                            vk::Extent3D extent_ = vk::Extent3D(),
21482                            vk::DeviceMemory memory_ = vk::DeviceMemory(),
21483                            vk::DeviceSize memoryOffset_ = 0,
21484                            vk::SparseMemoryBindFlags flags_ = vk::SparseMemoryBindFlags() )
21485         : subresource( subresource_ )
21486         , offset( offset_ )
21487         , extent( extent_ )
21488         , memory( memory_ )
21489         , memoryOffset( memoryOffset_ )
21490         , flags( flags_ )
21491     {}
21492 
SparseImageMemoryBindVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21493     SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs )
21494     {
21495       *reinterpret_cast<VkSparseImageMemoryBind*>(this) = rhs;
21496     }
21497 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21498     SparseImageMemoryBind& operator=( VkSparseImageMemoryBind const & rhs )
21499     {
21500       *reinterpret_cast<VkSparseImageMemoryBind*>(this) = rhs;
21501       return *this;
21502     }
21503 
setSubresourceVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21504     SparseImageMemoryBind & setSubresource( vk::ImageSubresource subresource_ )
21505     {
21506       subresource = subresource_;
21507       return *this;
21508     }
21509 
setOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21510     SparseImageMemoryBind & setOffset( vk::Offset3D offset_ )
21511     {
21512       offset = offset_;
21513       return *this;
21514     }
21515 
setExtentVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21516     SparseImageMemoryBind & setExtent( vk::Extent3D extent_ )
21517     {
21518       extent = extent_;
21519       return *this;
21520     }
21521 
setMemoryVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21522     SparseImageMemoryBind & setMemory( vk::DeviceMemory memory_ )
21523     {
21524       memory = memory_;
21525       return *this;
21526     }
21527 
setMemoryOffsetVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21528     SparseImageMemoryBind & setMemoryOffset( vk::DeviceSize memoryOffset_ )
21529     {
21530       memoryOffset = memoryOffset_;
21531       return *this;
21532     }
21533 
setFlagsVULKAN_HPP_NAMESPACE::SparseImageMemoryBind21534     SparseImageMemoryBind & setFlags( vk::SparseMemoryBindFlags flags_ )
21535     {
21536       flags = flags_;
21537       return *this;
21538     }
21539 
operator VkSparseImageMemoryBind const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21540     operator VkSparseImageMemoryBind const&() const
21541     {
21542       return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
21543     }
21544 
operator VkSparseImageMemoryBind&VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21545     operator VkSparseImageMemoryBind &()
21546     {
21547       return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
21548     }
21549 
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21550     bool operator==( SparseImageMemoryBind const& rhs ) const
21551     {
21552       return ( subresource == rhs.subresource )
21553           && ( offset == rhs.offset )
21554           && ( extent == rhs.extent )
21555           && ( memory == rhs.memory )
21556           && ( memoryOffset == rhs.memoryOffset )
21557           && ( flags == rhs.flags );
21558     }
21559 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBind21560     bool operator!=( SparseImageMemoryBind const& rhs ) const
21561     {
21562       return !operator==( rhs );
21563     }
21564 
21565   public:
21566     vk::ImageSubresource subresource;
21567     vk::Offset3D offset;
21568     vk::Extent3D extent;
21569     vk::DeviceMemory memory;
21570     vk::DeviceSize memoryOffset;
21571     vk::SparseMemoryBindFlags flags;
21572   };
21573   static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
21574   static_assert( std::is_standard_layout<SparseImageMemoryBind>::value, "struct wrapper is not a standard layout!" );
21575 
21576   struct SparseImageMemoryBindInfo
21577   {
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21578     SparseImageMemoryBindInfo( vk::Image image_ = vk::Image(),
21579                                uint32_t bindCount_ = 0,
21580                                const vk::SparseImageMemoryBind* pBinds_ = nullptr )
21581         : image( image_ )
21582         , bindCount( bindCount_ )
21583         , pBinds( pBinds_ )
21584     {}
21585 
SparseImageMemoryBindInfoVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21586     SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs )
21587     {
21588       *reinterpret_cast<VkSparseImageMemoryBindInfo*>(this) = rhs;
21589     }
21590 
operator =VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21591     SparseImageMemoryBindInfo& operator=( VkSparseImageMemoryBindInfo const & rhs )
21592     {
21593       *reinterpret_cast<VkSparseImageMemoryBindInfo*>(this) = rhs;
21594       return *this;
21595     }
21596 
setImageVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21597     SparseImageMemoryBindInfo & setImage( vk::Image image_ )
21598     {
21599       image = image_;
21600       return *this;
21601     }
21602 
setBindCountVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21603     SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ )
21604     {
21605       bindCount = bindCount_;
21606       return *this;
21607     }
21608 
setPBindsVULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21609     SparseImageMemoryBindInfo & setPBinds( const vk::SparseImageMemoryBind* pBinds_ )
21610     {
21611       pBinds = pBinds_;
21612       return *this;
21613     }
21614 
operator VkSparseImageMemoryBindInfo const&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21615     operator VkSparseImageMemoryBindInfo const&() const
21616     {
21617       return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
21618     }
21619 
operator VkSparseImageMemoryBindInfo&VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21620     operator VkSparseImageMemoryBindInfo &()
21621     {
21622       return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
21623     }
21624 
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21625     bool operator==( SparseImageMemoryBindInfo const& rhs ) const
21626     {
21627       return ( image == rhs.image )
21628           && ( bindCount == rhs.bindCount )
21629           && ( pBinds == rhs.pBinds );
21630     }
21631 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo21632     bool operator!=( SparseImageMemoryBindInfo const& rhs ) const
21633     {
21634       return !operator==( rhs );
21635     }
21636 
21637   public:
21638     vk::Image image;
21639     uint32_t bindCount;
21640     const vk::SparseImageMemoryBind* pBinds;
21641   };
21642   static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
21643   static_assert( std::is_standard_layout<SparseImageMemoryBindInfo>::value, "struct wrapper is not a standard layout!" );
21644 
21645   namespace layout
21646   {
21647     struct BindSparseInfo
21648     {
21649     protected:
BindSparseInfoVULKAN_HPP_NAMESPACE::layout::BindSparseInfo21650       BindSparseInfo( uint32_t waitSemaphoreCount_ = 0,
21651                       const vk::Semaphore* pWaitSemaphores_ = nullptr,
21652                       uint32_t bufferBindCount_ = 0,
21653                       const vk::SparseBufferMemoryBindInfo* pBufferBinds_ = nullptr,
21654                       uint32_t imageOpaqueBindCount_ = 0,
21655                       const vk::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = nullptr,
21656                       uint32_t imageBindCount_ = 0,
21657                       const vk::SparseImageMemoryBindInfo* pImageBinds_ = nullptr,
21658                       uint32_t signalSemaphoreCount_ = 0,
21659                       const vk::Semaphore* pSignalSemaphores_ = nullptr )
21660         : waitSemaphoreCount( waitSemaphoreCount_ )
21661         , pWaitSemaphores( pWaitSemaphores_ )
21662         , bufferBindCount( bufferBindCount_ )
21663         , pBufferBinds( pBufferBinds_ )
21664         , imageOpaqueBindCount( imageOpaqueBindCount_ )
21665         , pImageOpaqueBinds( pImageOpaqueBinds_ )
21666         , imageBindCount( imageBindCount_ )
21667         , pImageBinds( pImageBinds_ )
21668         , signalSemaphoreCount( signalSemaphoreCount_ )
21669         , pSignalSemaphores( pSignalSemaphores_ )
21670       {}
21671 
BindSparseInfoVULKAN_HPP_NAMESPACE::layout::BindSparseInfo21672       BindSparseInfo( VkBindSparseInfo const & rhs )
21673       {
21674         *reinterpret_cast<VkBindSparseInfo*>(this) = rhs;
21675       }
21676 
operator =VULKAN_HPP_NAMESPACE::layout::BindSparseInfo21677       BindSparseInfo& operator=( VkBindSparseInfo const & rhs )
21678       {
21679         *reinterpret_cast<VkBindSparseInfo*>(this) = rhs;
21680         return *this;
21681       }
21682 
21683     public:
21684       vk::StructureType sType = StructureType::eBindSparseInfo;
21685       const void* pNext = nullptr;
21686       uint32_t waitSemaphoreCount;
21687       const vk::Semaphore* pWaitSemaphores;
21688       uint32_t bufferBindCount;
21689       const vk::SparseBufferMemoryBindInfo* pBufferBinds;
21690       uint32_t imageOpaqueBindCount;
21691       const vk::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
21692       uint32_t imageBindCount;
21693       const vk::SparseImageMemoryBindInfo* pImageBinds;
21694       uint32_t signalSemaphoreCount;
21695       const vk::Semaphore* pSignalSemaphores;
21696     };
21697     static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "layout struct and wrapper have different size!" );
21698   }
21699 
21700   struct BindSparseInfo : public layout::BindSparseInfo
21701   {
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21702     BindSparseInfo( uint32_t waitSemaphoreCount_ = 0,
21703                     const vk::Semaphore* pWaitSemaphores_ = nullptr,
21704                     uint32_t bufferBindCount_ = 0,
21705                     const vk::SparseBufferMemoryBindInfo* pBufferBinds_ = nullptr,
21706                     uint32_t imageOpaqueBindCount_ = 0,
21707                     const vk::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = nullptr,
21708                     uint32_t imageBindCount_ = 0,
21709                     const vk::SparseImageMemoryBindInfo* pImageBinds_ = nullptr,
21710                     uint32_t signalSemaphoreCount_ = 0,
21711                     const vk::Semaphore* pSignalSemaphores_ = nullptr )
21712       : layout::BindSparseInfo( waitSemaphoreCount_, pWaitSemaphores_, bufferBindCount_, pBufferBinds_, imageOpaqueBindCount_, pImageOpaqueBinds_, imageBindCount_, pImageBinds_, signalSemaphoreCount_, pSignalSemaphores_ )
21713     {}
21714 
BindSparseInfoVULKAN_HPP_NAMESPACE::BindSparseInfo21715     BindSparseInfo( VkBindSparseInfo const & rhs )
21716       : layout::BindSparseInfo( rhs )
21717     {}
21718 
operator =VULKAN_HPP_NAMESPACE::BindSparseInfo21719     BindSparseInfo& operator=( VkBindSparseInfo const & rhs )
21720     {
21721       *reinterpret_cast<VkBindSparseInfo*>(this) = rhs;
21722       return *this;
21723     }
21724 
setPNextVULKAN_HPP_NAMESPACE::BindSparseInfo21725     BindSparseInfo & setPNext( const void* pNext_ )
21726     {
21727       pNext = pNext_;
21728       return *this;
21729     }
21730 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21731     BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
21732     {
21733       waitSemaphoreCount = waitSemaphoreCount_;
21734       return *this;
21735     }
21736 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21737     BindSparseInfo & setPWaitSemaphores( const vk::Semaphore* pWaitSemaphores_ )
21738     {
21739       pWaitSemaphores = pWaitSemaphores_;
21740       return *this;
21741     }
21742 
setBufferBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21743     BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ )
21744     {
21745       bufferBindCount = bufferBindCount_;
21746       return *this;
21747     }
21748 
setPBufferBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21749     BindSparseInfo & setPBufferBinds( const vk::SparseBufferMemoryBindInfo* pBufferBinds_ )
21750     {
21751       pBufferBinds = pBufferBinds_;
21752       return *this;
21753     }
21754 
setImageOpaqueBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21755     BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ )
21756     {
21757       imageOpaqueBindCount = imageOpaqueBindCount_;
21758       return *this;
21759     }
21760 
setPImageOpaqueBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21761     BindSparseInfo & setPImageOpaqueBinds( const vk::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ )
21762     {
21763       pImageOpaqueBinds = pImageOpaqueBinds_;
21764       return *this;
21765     }
21766 
setImageBindCountVULKAN_HPP_NAMESPACE::BindSparseInfo21767     BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ )
21768     {
21769       imageBindCount = imageBindCount_;
21770       return *this;
21771     }
21772 
setPImageBindsVULKAN_HPP_NAMESPACE::BindSparseInfo21773     BindSparseInfo & setPImageBinds( const vk::SparseImageMemoryBindInfo* pImageBinds_ )
21774     {
21775       pImageBinds = pImageBinds_;
21776       return *this;
21777     }
21778 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::BindSparseInfo21779     BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
21780     {
21781       signalSemaphoreCount = signalSemaphoreCount_;
21782       return *this;
21783     }
21784 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::BindSparseInfo21785     BindSparseInfo & setPSignalSemaphores( const vk::Semaphore* pSignalSemaphores_ )
21786     {
21787       pSignalSemaphores = pSignalSemaphores_;
21788       return *this;
21789     }
21790 
operator VkBindSparseInfo const&VULKAN_HPP_NAMESPACE::BindSparseInfo21791     operator VkBindSparseInfo const&() const
21792     {
21793       return *reinterpret_cast<const VkBindSparseInfo*>( this );
21794     }
21795 
operator VkBindSparseInfo&VULKAN_HPP_NAMESPACE::BindSparseInfo21796     operator VkBindSparseInfo &()
21797     {
21798       return *reinterpret_cast<VkBindSparseInfo*>( this );
21799     }
21800 
operator ==VULKAN_HPP_NAMESPACE::BindSparseInfo21801     bool operator==( BindSparseInfo const& rhs ) const
21802     {
21803       return ( sType == rhs.sType )
21804           && ( pNext == rhs.pNext )
21805           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
21806           && ( pWaitSemaphores == rhs.pWaitSemaphores )
21807           && ( bufferBindCount == rhs.bufferBindCount )
21808           && ( pBufferBinds == rhs.pBufferBinds )
21809           && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
21810           && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
21811           && ( imageBindCount == rhs.imageBindCount )
21812           && ( pImageBinds == rhs.pImageBinds )
21813           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
21814           && ( pSignalSemaphores == rhs.pSignalSemaphores );
21815     }
21816 
operator !=VULKAN_HPP_NAMESPACE::BindSparseInfo21817     bool operator!=( BindSparseInfo const& rhs ) const
21818     {
21819       return !operator==( rhs );
21820     }
21821 
21822   private:
21823     using layout::BindSparseInfo::sType;
21824   };
21825   static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
21826   static_assert( std::is_standard_layout<BindSparseInfo>::value, "struct wrapper is not a standard layout!" );
21827 
21828   struct BufferCopy
21829   {
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21830     BufferCopy( vk::DeviceSize srcOffset_ = 0,
21831                 vk::DeviceSize dstOffset_ = 0,
21832                 vk::DeviceSize size_ = 0 )
21833         : srcOffset( srcOffset_ )
21834         , dstOffset( dstOffset_ )
21835         , size( size_ )
21836     {}
21837 
BufferCopyVULKAN_HPP_NAMESPACE::BufferCopy21838     BufferCopy( VkBufferCopy const & rhs )
21839     {
21840       *reinterpret_cast<VkBufferCopy*>(this) = rhs;
21841     }
21842 
operator =VULKAN_HPP_NAMESPACE::BufferCopy21843     BufferCopy& operator=( VkBufferCopy const & rhs )
21844     {
21845       *reinterpret_cast<VkBufferCopy*>(this) = rhs;
21846       return *this;
21847     }
21848 
setSrcOffsetVULKAN_HPP_NAMESPACE::BufferCopy21849     BufferCopy & setSrcOffset( vk::DeviceSize srcOffset_ )
21850     {
21851       srcOffset = srcOffset_;
21852       return *this;
21853     }
21854 
setDstOffsetVULKAN_HPP_NAMESPACE::BufferCopy21855     BufferCopy & setDstOffset( vk::DeviceSize dstOffset_ )
21856     {
21857       dstOffset = dstOffset_;
21858       return *this;
21859     }
21860 
setSizeVULKAN_HPP_NAMESPACE::BufferCopy21861     BufferCopy & setSize( vk::DeviceSize size_ )
21862     {
21863       size = size_;
21864       return *this;
21865     }
21866 
operator VkBufferCopy const&VULKAN_HPP_NAMESPACE::BufferCopy21867     operator VkBufferCopy const&() const
21868     {
21869       return *reinterpret_cast<const VkBufferCopy*>( this );
21870     }
21871 
operator VkBufferCopy&VULKAN_HPP_NAMESPACE::BufferCopy21872     operator VkBufferCopy &()
21873     {
21874       return *reinterpret_cast<VkBufferCopy*>( this );
21875     }
21876 
operator ==VULKAN_HPP_NAMESPACE::BufferCopy21877     bool operator==( BufferCopy const& rhs ) const
21878     {
21879       return ( srcOffset == rhs.srcOffset )
21880           && ( dstOffset == rhs.dstOffset )
21881           && ( size == rhs.size );
21882     }
21883 
operator !=VULKAN_HPP_NAMESPACE::BufferCopy21884     bool operator!=( BufferCopy const& rhs ) const
21885     {
21886       return !operator==( rhs );
21887     }
21888 
21889   public:
21890     vk::DeviceSize srcOffset;
21891     vk::DeviceSize dstOffset;
21892     vk::DeviceSize size;
21893   };
21894   static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
21895   static_assert( std::is_standard_layout<BufferCopy>::value, "struct wrapper is not a standard layout!" );
21896 
21897   namespace layout
21898   {
21899     struct BufferCreateInfo
21900     {
21901     protected:
BufferCreateInfoVULKAN_HPP_NAMESPACE::layout::BufferCreateInfo21902       BufferCreateInfo( vk::BufferCreateFlags flags_ = vk::BufferCreateFlags(),
21903                         vk::DeviceSize size_ = 0,
21904                         vk::BufferUsageFlags usage_ = vk::BufferUsageFlags(),
21905                         vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
21906                         uint32_t queueFamilyIndexCount_ = 0,
21907                         const uint32_t* pQueueFamilyIndices_ = nullptr )
21908         : flags( flags_ )
21909         , size( size_ )
21910         , usage( usage_ )
21911         , sharingMode( sharingMode_ )
21912         , queueFamilyIndexCount( queueFamilyIndexCount_ )
21913         , pQueueFamilyIndices( pQueueFamilyIndices_ )
21914       {}
21915 
BufferCreateInfoVULKAN_HPP_NAMESPACE::layout::BufferCreateInfo21916       BufferCreateInfo( VkBufferCreateInfo const & rhs )
21917       {
21918         *reinterpret_cast<VkBufferCreateInfo*>(this) = rhs;
21919       }
21920 
operator =VULKAN_HPP_NAMESPACE::layout::BufferCreateInfo21921       BufferCreateInfo& operator=( VkBufferCreateInfo const & rhs )
21922       {
21923         *reinterpret_cast<VkBufferCreateInfo*>(this) = rhs;
21924         return *this;
21925       }
21926 
21927     public:
21928       vk::StructureType sType = StructureType::eBufferCreateInfo;
21929       const void* pNext = nullptr;
21930       vk::BufferCreateFlags flags;
21931       vk::DeviceSize size;
21932       vk::BufferUsageFlags usage;
21933       vk::SharingMode sharingMode;
21934       uint32_t queueFamilyIndexCount;
21935       const uint32_t* pQueueFamilyIndices;
21936     };
21937     static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "layout struct and wrapper have different size!" );
21938   }
21939 
21940   struct BufferCreateInfo : public layout::BufferCreateInfo
21941   {
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo21942     BufferCreateInfo( vk::BufferCreateFlags flags_ = vk::BufferCreateFlags(),
21943                       vk::DeviceSize size_ = 0,
21944                       vk::BufferUsageFlags usage_ = vk::BufferUsageFlags(),
21945                       vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
21946                       uint32_t queueFamilyIndexCount_ = 0,
21947                       const uint32_t* pQueueFamilyIndices_ = nullptr )
21948       : layout::BufferCreateInfo( flags_, size_, usage_, sharingMode_, queueFamilyIndexCount_, pQueueFamilyIndices_ )
21949     {}
21950 
BufferCreateInfoVULKAN_HPP_NAMESPACE::BufferCreateInfo21951     BufferCreateInfo( VkBufferCreateInfo const & rhs )
21952       : layout::BufferCreateInfo( rhs )
21953     {}
21954 
operator =VULKAN_HPP_NAMESPACE::BufferCreateInfo21955     BufferCreateInfo& operator=( VkBufferCreateInfo const & rhs )
21956     {
21957       *reinterpret_cast<VkBufferCreateInfo*>(this) = rhs;
21958       return *this;
21959     }
21960 
setPNextVULKAN_HPP_NAMESPACE::BufferCreateInfo21961     BufferCreateInfo & setPNext( const void* pNext_ )
21962     {
21963       pNext = pNext_;
21964       return *this;
21965     }
21966 
setFlagsVULKAN_HPP_NAMESPACE::BufferCreateInfo21967     BufferCreateInfo & setFlags( vk::BufferCreateFlags flags_ )
21968     {
21969       flags = flags_;
21970       return *this;
21971     }
21972 
setSizeVULKAN_HPP_NAMESPACE::BufferCreateInfo21973     BufferCreateInfo & setSize( vk::DeviceSize size_ )
21974     {
21975       size = size_;
21976       return *this;
21977     }
21978 
setUsageVULKAN_HPP_NAMESPACE::BufferCreateInfo21979     BufferCreateInfo & setUsage( vk::BufferUsageFlags usage_ )
21980     {
21981       usage = usage_;
21982       return *this;
21983     }
21984 
setSharingModeVULKAN_HPP_NAMESPACE::BufferCreateInfo21985     BufferCreateInfo & setSharingMode( vk::SharingMode sharingMode_ )
21986     {
21987       sharingMode = sharingMode_;
21988       return *this;
21989     }
21990 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::BufferCreateInfo21991     BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
21992     {
21993       queueFamilyIndexCount = queueFamilyIndexCount_;
21994       return *this;
21995     }
21996 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::BufferCreateInfo21997     BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
21998     {
21999       pQueueFamilyIndices = pQueueFamilyIndices_;
22000       return *this;
22001     }
22002 
operator VkBufferCreateInfo const&VULKAN_HPP_NAMESPACE::BufferCreateInfo22003     operator VkBufferCreateInfo const&() const
22004     {
22005       return *reinterpret_cast<const VkBufferCreateInfo*>( this );
22006     }
22007 
operator VkBufferCreateInfo&VULKAN_HPP_NAMESPACE::BufferCreateInfo22008     operator VkBufferCreateInfo &()
22009     {
22010       return *reinterpret_cast<VkBufferCreateInfo*>( this );
22011     }
22012 
operator ==VULKAN_HPP_NAMESPACE::BufferCreateInfo22013     bool operator==( BufferCreateInfo const& rhs ) const
22014     {
22015       return ( sType == rhs.sType )
22016           && ( pNext == rhs.pNext )
22017           && ( flags == rhs.flags )
22018           && ( size == rhs.size )
22019           && ( usage == rhs.usage )
22020           && ( sharingMode == rhs.sharingMode )
22021           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
22022           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
22023     }
22024 
operator !=VULKAN_HPP_NAMESPACE::BufferCreateInfo22025     bool operator!=( BufferCreateInfo const& rhs ) const
22026     {
22027       return !operator==( rhs );
22028     }
22029 
22030   private:
22031     using layout::BufferCreateInfo::sType;
22032   };
22033   static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
22034   static_assert( std::is_standard_layout<BufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
22035 
22036   namespace layout
22037   {
22038     struct BufferDeviceAddressCreateInfoEXT
22039     {
22040     protected:
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressCreateInfoEXT22041       BufferDeviceAddressCreateInfoEXT( vk::DeviceAddress deviceAddress_ = 0 )
22042         : deviceAddress( deviceAddress_ )
22043       {}
22044 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressCreateInfoEXT22045       BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs )
22046       {
22047         *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(this) = rhs;
22048       }
22049 
operator =VULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressCreateInfoEXT22050       BufferDeviceAddressCreateInfoEXT& operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs )
22051       {
22052         *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(this) = rhs;
22053         return *this;
22054       }
22055 
22056     public:
22057       vk::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
22058       const void* pNext = nullptr;
22059       vk::DeviceAddress deviceAddress;
22060     };
22061     static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "layout struct and wrapper have different size!" );
22062   }
22063 
22064   struct BufferDeviceAddressCreateInfoEXT : public layout::BufferDeviceAddressCreateInfoEXT
22065   {
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22066     BufferDeviceAddressCreateInfoEXT( vk::DeviceAddress deviceAddress_ = 0 )
22067       : layout::BufferDeviceAddressCreateInfoEXT( deviceAddress_ )
22068     {}
22069 
BufferDeviceAddressCreateInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22070     BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs )
22071       : layout::BufferDeviceAddressCreateInfoEXT( rhs )
22072     {}
22073 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22074     BufferDeviceAddressCreateInfoEXT& operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs )
22075     {
22076       *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(this) = rhs;
22077       return *this;
22078     }
22079 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22080     BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ )
22081     {
22082       pNext = pNext_;
22083       return *this;
22084     }
22085 
setDeviceAddressVULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22086     BufferDeviceAddressCreateInfoEXT & setDeviceAddress( vk::DeviceAddress deviceAddress_ )
22087     {
22088       deviceAddress = deviceAddress_;
22089       return *this;
22090     }
22091 
operator VkBufferDeviceAddressCreateInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22092     operator VkBufferDeviceAddressCreateInfoEXT const&() const
22093     {
22094       return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
22095     }
22096 
operator VkBufferDeviceAddressCreateInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22097     operator VkBufferDeviceAddressCreateInfoEXT &()
22098     {
22099       return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
22100     }
22101 
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22102     bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const
22103     {
22104       return ( sType == rhs.sType )
22105           && ( pNext == rhs.pNext )
22106           && ( deviceAddress == rhs.deviceAddress );
22107     }
22108 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT22109     bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const
22110     {
22111       return !operator==( rhs );
22112     }
22113 
22114   private:
22115     using layout::BufferDeviceAddressCreateInfoEXT::sType;
22116   };
22117   static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
22118   static_assert( std::is_standard_layout<BufferDeviceAddressCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
22119 
22120   namespace layout
22121   {
22122     struct BufferDeviceAddressInfoEXT
22123     {
22124     protected:
BufferDeviceAddressInfoEXTVULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressInfoEXT22125       BufferDeviceAddressInfoEXT( vk::Buffer buffer_ = vk::Buffer() )
22126         : buffer( buffer_ )
22127       {}
22128 
BufferDeviceAddressInfoEXTVULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressInfoEXT22129       BufferDeviceAddressInfoEXT( VkBufferDeviceAddressInfoEXT const & rhs )
22130       {
22131         *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>(this) = rhs;
22132       }
22133 
operator =VULKAN_HPP_NAMESPACE::layout::BufferDeviceAddressInfoEXT22134       BufferDeviceAddressInfoEXT& operator=( VkBufferDeviceAddressInfoEXT const & rhs )
22135       {
22136         *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>(this) = rhs;
22137         return *this;
22138       }
22139 
22140     public:
22141       vk::StructureType sType = StructureType::eBufferDeviceAddressInfoEXT;
22142       const void* pNext = nullptr;
22143       vk::Buffer buffer;
22144     };
22145     static_assert( sizeof( BufferDeviceAddressInfoEXT ) == sizeof( VkBufferDeviceAddressInfoEXT ), "layout struct and wrapper have different size!" );
22146   }
22147 
22148   struct BufferDeviceAddressInfoEXT : public layout::BufferDeviceAddressInfoEXT
22149   {
BufferDeviceAddressInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22150     BufferDeviceAddressInfoEXT( vk::Buffer buffer_ = vk::Buffer() )
22151       : layout::BufferDeviceAddressInfoEXT( buffer_ )
22152     {}
22153 
BufferDeviceAddressInfoEXTVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22154     BufferDeviceAddressInfoEXT( VkBufferDeviceAddressInfoEXT const & rhs )
22155       : layout::BufferDeviceAddressInfoEXT( rhs )
22156     {}
22157 
operator =VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22158     BufferDeviceAddressInfoEXT& operator=( VkBufferDeviceAddressInfoEXT const & rhs )
22159     {
22160       *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>(this) = rhs;
22161       return *this;
22162     }
22163 
setPNextVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22164     BufferDeviceAddressInfoEXT & setPNext( const void* pNext_ )
22165     {
22166       pNext = pNext_;
22167       return *this;
22168     }
22169 
setBufferVULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22170     BufferDeviceAddressInfoEXT & setBuffer( vk::Buffer buffer_ )
22171     {
22172       buffer = buffer_;
22173       return *this;
22174     }
22175 
operator VkBufferDeviceAddressInfoEXT const&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22176     operator VkBufferDeviceAddressInfoEXT const&() const
22177     {
22178       return *reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( this );
22179     }
22180 
operator VkBufferDeviceAddressInfoEXT&VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22181     operator VkBufferDeviceAddressInfoEXT &()
22182     {
22183       return *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>( this );
22184     }
22185 
operator ==VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22186     bool operator==( BufferDeviceAddressInfoEXT const& rhs ) const
22187     {
22188       return ( sType == rhs.sType )
22189           && ( pNext == rhs.pNext )
22190           && ( buffer == rhs.buffer );
22191     }
22192 
operator !=VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfoEXT22193     bool operator!=( BufferDeviceAddressInfoEXT const& rhs ) const
22194     {
22195       return !operator==( rhs );
22196     }
22197 
22198   private:
22199     using layout::BufferDeviceAddressInfoEXT::sType;
22200   };
22201   static_assert( sizeof( BufferDeviceAddressInfoEXT ) == sizeof( VkBufferDeviceAddressInfoEXT ), "struct and wrapper have different size!" );
22202   static_assert( std::is_standard_layout<BufferDeviceAddressInfoEXT>::value, "struct wrapper is not a standard layout!" );
22203 
22204   struct ImageSubresourceLayers
22205   {
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22206     ImageSubresourceLayers( vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags(),
22207                             uint32_t mipLevel_ = 0,
22208                             uint32_t baseArrayLayer_ = 0,
22209                             uint32_t layerCount_ = 0 )
22210         : aspectMask( aspectMask_ )
22211         , mipLevel( mipLevel_ )
22212         , baseArrayLayer( baseArrayLayer_ )
22213         , layerCount( layerCount_ )
22214     {}
22215 
ImageSubresourceLayersVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22216     ImageSubresourceLayers( VkImageSubresourceLayers const & rhs )
22217     {
22218       *reinterpret_cast<VkImageSubresourceLayers*>(this) = rhs;
22219     }
22220 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22221     ImageSubresourceLayers& operator=( VkImageSubresourceLayers const & rhs )
22222     {
22223       *reinterpret_cast<VkImageSubresourceLayers*>(this) = rhs;
22224       return *this;
22225     }
22226 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22227     ImageSubresourceLayers & setAspectMask( vk::ImageAspectFlags aspectMask_ )
22228     {
22229       aspectMask = aspectMask_;
22230       return *this;
22231     }
22232 
setMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22233     ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ )
22234     {
22235       mipLevel = mipLevel_;
22236       return *this;
22237     }
22238 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22239     ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ )
22240     {
22241       baseArrayLayer = baseArrayLayer_;
22242       return *this;
22243     }
22244 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceLayers22245     ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ )
22246     {
22247       layerCount = layerCount_;
22248       return *this;
22249     }
22250 
operator VkImageSubresourceLayers const&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22251     operator VkImageSubresourceLayers const&() const
22252     {
22253       return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
22254     }
22255 
operator VkImageSubresourceLayers&VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22256     operator VkImageSubresourceLayers &()
22257     {
22258       return *reinterpret_cast<VkImageSubresourceLayers*>( this );
22259     }
22260 
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22261     bool operator==( ImageSubresourceLayers const& rhs ) const
22262     {
22263       return ( aspectMask == rhs.aspectMask )
22264           && ( mipLevel == rhs.mipLevel )
22265           && ( baseArrayLayer == rhs.baseArrayLayer )
22266           && ( layerCount == rhs.layerCount );
22267     }
22268 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceLayers22269     bool operator!=( ImageSubresourceLayers const& rhs ) const
22270     {
22271       return !operator==( rhs );
22272     }
22273 
22274   public:
22275     vk::ImageAspectFlags aspectMask;
22276     uint32_t mipLevel;
22277     uint32_t baseArrayLayer;
22278     uint32_t layerCount;
22279   };
22280   static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
22281   static_assert( std::is_standard_layout<ImageSubresourceLayers>::value, "struct wrapper is not a standard layout!" );
22282 
22283   struct BufferImageCopy
22284   {
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22285     BufferImageCopy( vk::DeviceSize bufferOffset_ = 0,
22286                      uint32_t bufferRowLength_ = 0,
22287                      uint32_t bufferImageHeight_ = 0,
22288                      vk::ImageSubresourceLayers imageSubresource_ = vk::ImageSubresourceLayers(),
22289                      vk::Offset3D imageOffset_ = vk::Offset3D(),
22290                      vk::Extent3D imageExtent_ = vk::Extent3D() )
22291         : bufferOffset( bufferOffset_ )
22292         , bufferRowLength( bufferRowLength_ )
22293         , bufferImageHeight( bufferImageHeight_ )
22294         , imageSubresource( imageSubresource_ )
22295         , imageOffset( imageOffset_ )
22296         , imageExtent( imageExtent_ )
22297     {}
22298 
BufferImageCopyVULKAN_HPP_NAMESPACE::BufferImageCopy22299     BufferImageCopy( VkBufferImageCopy const & rhs )
22300     {
22301       *reinterpret_cast<VkBufferImageCopy*>(this) = rhs;
22302     }
22303 
operator =VULKAN_HPP_NAMESPACE::BufferImageCopy22304     BufferImageCopy& operator=( VkBufferImageCopy const & rhs )
22305     {
22306       *reinterpret_cast<VkBufferImageCopy*>(this) = rhs;
22307       return *this;
22308     }
22309 
setBufferOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22310     BufferImageCopy & setBufferOffset( vk::DeviceSize bufferOffset_ )
22311     {
22312       bufferOffset = bufferOffset_;
22313       return *this;
22314     }
22315 
setBufferRowLengthVULKAN_HPP_NAMESPACE::BufferImageCopy22316     BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ )
22317     {
22318       bufferRowLength = bufferRowLength_;
22319       return *this;
22320     }
22321 
setBufferImageHeightVULKAN_HPP_NAMESPACE::BufferImageCopy22322     BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ )
22323     {
22324       bufferImageHeight = bufferImageHeight_;
22325       return *this;
22326     }
22327 
setImageSubresourceVULKAN_HPP_NAMESPACE::BufferImageCopy22328     BufferImageCopy & setImageSubresource( vk::ImageSubresourceLayers imageSubresource_ )
22329     {
22330       imageSubresource = imageSubresource_;
22331       return *this;
22332     }
22333 
setImageOffsetVULKAN_HPP_NAMESPACE::BufferImageCopy22334     BufferImageCopy & setImageOffset( vk::Offset3D imageOffset_ )
22335     {
22336       imageOffset = imageOffset_;
22337       return *this;
22338     }
22339 
setImageExtentVULKAN_HPP_NAMESPACE::BufferImageCopy22340     BufferImageCopy & setImageExtent( vk::Extent3D imageExtent_ )
22341     {
22342       imageExtent = imageExtent_;
22343       return *this;
22344     }
22345 
operator VkBufferImageCopy const&VULKAN_HPP_NAMESPACE::BufferImageCopy22346     operator VkBufferImageCopy const&() const
22347     {
22348       return *reinterpret_cast<const VkBufferImageCopy*>( this );
22349     }
22350 
operator VkBufferImageCopy&VULKAN_HPP_NAMESPACE::BufferImageCopy22351     operator VkBufferImageCopy &()
22352     {
22353       return *reinterpret_cast<VkBufferImageCopy*>( this );
22354     }
22355 
operator ==VULKAN_HPP_NAMESPACE::BufferImageCopy22356     bool operator==( BufferImageCopy const& rhs ) const
22357     {
22358       return ( bufferOffset == rhs.bufferOffset )
22359           && ( bufferRowLength == rhs.bufferRowLength )
22360           && ( bufferImageHeight == rhs.bufferImageHeight )
22361           && ( imageSubresource == rhs.imageSubresource )
22362           && ( imageOffset == rhs.imageOffset )
22363           && ( imageExtent == rhs.imageExtent );
22364     }
22365 
operator !=VULKAN_HPP_NAMESPACE::BufferImageCopy22366     bool operator!=( BufferImageCopy const& rhs ) const
22367     {
22368       return !operator==( rhs );
22369     }
22370 
22371   public:
22372     vk::DeviceSize bufferOffset;
22373     uint32_t bufferRowLength;
22374     uint32_t bufferImageHeight;
22375     vk::ImageSubresourceLayers imageSubresource;
22376     vk::Offset3D imageOffset;
22377     vk::Extent3D imageExtent;
22378   };
22379   static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
22380   static_assert( std::is_standard_layout<BufferImageCopy>::value, "struct wrapper is not a standard layout!" );
22381 
22382   namespace layout
22383   {
22384     struct BufferMemoryBarrier
22385     {
22386     protected:
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::layout::BufferMemoryBarrier22387       BufferMemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
22388                            vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
22389                            uint32_t srcQueueFamilyIndex_ = 0,
22390                            uint32_t dstQueueFamilyIndex_ = 0,
22391                            vk::Buffer buffer_ = vk::Buffer(),
22392                            vk::DeviceSize offset_ = 0,
22393                            vk::DeviceSize size_ = 0 )
22394         : srcAccessMask( srcAccessMask_ )
22395         , dstAccessMask( dstAccessMask_ )
22396         , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
22397         , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
22398         , buffer( buffer_ )
22399         , offset( offset_ )
22400         , size( size_ )
22401       {}
22402 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::layout::BufferMemoryBarrier22403       BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs )
22404       {
22405         *reinterpret_cast<VkBufferMemoryBarrier*>(this) = rhs;
22406       }
22407 
operator =VULKAN_HPP_NAMESPACE::layout::BufferMemoryBarrier22408       BufferMemoryBarrier& operator=( VkBufferMemoryBarrier const & rhs )
22409       {
22410         *reinterpret_cast<VkBufferMemoryBarrier*>(this) = rhs;
22411         return *this;
22412       }
22413 
22414     public:
22415       vk::StructureType sType = StructureType::eBufferMemoryBarrier;
22416       const void* pNext = nullptr;
22417       vk::AccessFlags srcAccessMask;
22418       vk::AccessFlags dstAccessMask;
22419       uint32_t srcQueueFamilyIndex;
22420       uint32_t dstQueueFamilyIndex;
22421       vk::Buffer buffer;
22422       vk::DeviceSize offset;
22423       vk::DeviceSize size;
22424     };
22425     static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "layout struct and wrapper have different size!" );
22426   }
22427 
22428   struct BufferMemoryBarrier : public layout::BufferMemoryBarrier
22429   {
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22430     BufferMemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
22431                          vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
22432                          uint32_t srcQueueFamilyIndex_ = 0,
22433                          uint32_t dstQueueFamilyIndex_ = 0,
22434                          vk::Buffer buffer_ = vk::Buffer(),
22435                          vk::DeviceSize offset_ = 0,
22436                          vk::DeviceSize size_ = 0 )
22437       : layout::BufferMemoryBarrier( srcAccessMask_, dstAccessMask_, srcQueueFamilyIndex_, dstQueueFamilyIndex_, buffer_, offset_, size_ )
22438     {}
22439 
BufferMemoryBarrierVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22440     BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs )
22441       : layout::BufferMemoryBarrier( rhs )
22442     {}
22443 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22444     BufferMemoryBarrier& operator=( VkBufferMemoryBarrier const & rhs )
22445     {
22446       *reinterpret_cast<VkBufferMemoryBarrier*>(this) = rhs;
22447       return *this;
22448     }
22449 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22450     BufferMemoryBarrier & setPNext( const void* pNext_ )
22451     {
22452       pNext = pNext_;
22453       return *this;
22454     }
22455 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22456     BufferMemoryBarrier & setSrcAccessMask( vk::AccessFlags srcAccessMask_ )
22457     {
22458       srcAccessMask = srcAccessMask_;
22459       return *this;
22460     }
22461 
setDstAccessMaskVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22462     BufferMemoryBarrier & setDstAccessMask( vk::AccessFlags dstAccessMask_ )
22463     {
22464       dstAccessMask = dstAccessMask_;
22465       return *this;
22466     }
22467 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22468     BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ )
22469     {
22470       srcQueueFamilyIndex = srcQueueFamilyIndex_;
22471       return *this;
22472     }
22473 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22474     BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ )
22475     {
22476       dstQueueFamilyIndex = dstQueueFamilyIndex_;
22477       return *this;
22478     }
22479 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22480     BufferMemoryBarrier & setBuffer( vk::Buffer buffer_ )
22481     {
22482       buffer = buffer_;
22483       return *this;
22484     }
22485 
setOffsetVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22486     BufferMemoryBarrier & setOffset( vk::DeviceSize offset_ )
22487     {
22488       offset = offset_;
22489       return *this;
22490     }
22491 
setSizeVULKAN_HPP_NAMESPACE::BufferMemoryBarrier22492     BufferMemoryBarrier & setSize( vk::DeviceSize size_ )
22493     {
22494       size = size_;
22495       return *this;
22496     }
22497 
operator VkBufferMemoryBarrier const&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22498     operator VkBufferMemoryBarrier const&() const
22499     {
22500       return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
22501     }
22502 
operator VkBufferMemoryBarrier&VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22503     operator VkBufferMemoryBarrier &()
22504     {
22505       return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
22506     }
22507 
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22508     bool operator==( BufferMemoryBarrier const& rhs ) const
22509     {
22510       return ( sType == rhs.sType )
22511           && ( pNext == rhs.pNext )
22512           && ( srcAccessMask == rhs.srcAccessMask )
22513           && ( dstAccessMask == rhs.dstAccessMask )
22514           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
22515           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
22516           && ( buffer == rhs.buffer )
22517           && ( offset == rhs.offset )
22518           && ( size == rhs.size );
22519     }
22520 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryBarrier22521     bool operator!=( BufferMemoryBarrier const& rhs ) const
22522     {
22523       return !operator==( rhs );
22524     }
22525 
22526   private:
22527     using layout::BufferMemoryBarrier::sType;
22528   };
22529   static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
22530   static_assert( std::is_standard_layout<BufferMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
22531 
22532   namespace layout
22533   {
22534     struct BufferMemoryRequirementsInfo2
22535     {
22536     protected:
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::BufferMemoryRequirementsInfo222537       BufferMemoryRequirementsInfo2( vk::Buffer buffer_ = vk::Buffer() )
22538         : buffer( buffer_ )
22539       {}
22540 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::BufferMemoryRequirementsInfo222541       BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs )
22542       {
22543         *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this) = rhs;
22544       }
22545 
operator =VULKAN_HPP_NAMESPACE::layout::BufferMemoryRequirementsInfo222546       BufferMemoryRequirementsInfo2& operator=( VkBufferMemoryRequirementsInfo2 const & rhs )
22547       {
22548         *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this) = rhs;
22549         return *this;
22550       }
22551 
22552     public:
22553       vk::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
22554       const void* pNext = nullptr;
22555       vk::Buffer buffer;
22556     };
22557     static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "layout struct and wrapper have different size!" );
22558   }
22559 
22560   struct BufferMemoryRequirementsInfo2 : public layout::BufferMemoryRequirementsInfo2
22561   {
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222562     BufferMemoryRequirementsInfo2( vk::Buffer buffer_ = vk::Buffer() )
22563       : layout::BufferMemoryRequirementsInfo2( buffer_ )
22564     {}
22565 
BufferMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222566     BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs )
22567       : layout::BufferMemoryRequirementsInfo2( rhs )
22568     {}
22569 
operator =VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222570     BufferMemoryRequirementsInfo2& operator=( VkBufferMemoryRequirementsInfo2 const & rhs )
22571     {
22572       *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this) = rhs;
22573       return *this;
22574     }
22575 
setPNextVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222576     BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
22577     {
22578       pNext = pNext_;
22579       return *this;
22580     }
22581 
setBufferVULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222582     BufferMemoryRequirementsInfo2 & setBuffer( vk::Buffer buffer_ )
22583     {
22584       buffer = buffer_;
22585       return *this;
22586     }
22587 
operator VkBufferMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222588     operator VkBufferMemoryRequirementsInfo2 const&() const
22589     {
22590       return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
22591     }
22592 
operator VkBufferMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222593     operator VkBufferMemoryRequirementsInfo2 &()
22594     {
22595       return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
22596     }
22597 
operator ==VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222598     bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const
22599     {
22600       return ( sType == rhs.sType )
22601           && ( pNext == rhs.pNext )
22602           && ( buffer == rhs.buffer );
22603     }
22604 
operator !=VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo222605     bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const
22606     {
22607       return !operator==( rhs );
22608     }
22609 
22610   private:
22611     using layout::BufferMemoryRequirementsInfo2::sType;
22612   };
22613   static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
22614   static_assert( std::is_standard_layout<BufferMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
22615 
22616   namespace layout
22617   {
22618     struct BufferViewCreateInfo
22619     {
22620     protected:
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::layout::BufferViewCreateInfo22621       BufferViewCreateInfo( vk::BufferViewCreateFlags flags_ = vk::BufferViewCreateFlags(),
22622                             vk::Buffer buffer_ = vk::Buffer(),
22623                             vk::Format format_ = vk::Format::eUndefined,
22624                             vk::DeviceSize offset_ = 0,
22625                             vk::DeviceSize range_ = 0 )
22626         : flags( flags_ )
22627         , buffer( buffer_ )
22628         , format( format_ )
22629         , offset( offset_ )
22630         , range( range_ )
22631       {}
22632 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::layout::BufferViewCreateInfo22633       BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs )
22634       {
22635         *reinterpret_cast<VkBufferViewCreateInfo*>(this) = rhs;
22636       }
22637 
operator =VULKAN_HPP_NAMESPACE::layout::BufferViewCreateInfo22638       BufferViewCreateInfo& operator=( VkBufferViewCreateInfo const & rhs )
22639       {
22640         *reinterpret_cast<VkBufferViewCreateInfo*>(this) = rhs;
22641         return *this;
22642       }
22643 
22644     public:
22645       vk::StructureType sType = StructureType::eBufferViewCreateInfo;
22646       const void* pNext = nullptr;
22647       vk::BufferViewCreateFlags flags;
22648       vk::Buffer buffer;
22649       vk::Format format;
22650       vk::DeviceSize offset;
22651       vk::DeviceSize range;
22652     };
22653     static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "layout struct and wrapper have different size!" );
22654   }
22655 
22656   struct BufferViewCreateInfo : public layout::BufferViewCreateInfo
22657   {
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22658     BufferViewCreateInfo( vk::BufferViewCreateFlags flags_ = vk::BufferViewCreateFlags(),
22659                           vk::Buffer buffer_ = vk::Buffer(),
22660                           vk::Format format_ = vk::Format::eUndefined,
22661                           vk::DeviceSize offset_ = 0,
22662                           vk::DeviceSize range_ = 0 )
22663       : layout::BufferViewCreateInfo( flags_, buffer_, format_, offset_, range_ )
22664     {}
22665 
BufferViewCreateInfoVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22666     BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs )
22667       : layout::BufferViewCreateInfo( rhs )
22668     {}
22669 
operator =VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22670     BufferViewCreateInfo& operator=( VkBufferViewCreateInfo const & rhs )
22671     {
22672       *reinterpret_cast<VkBufferViewCreateInfo*>(this) = rhs;
22673       return *this;
22674     }
22675 
setPNextVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22676     BufferViewCreateInfo & setPNext( const void* pNext_ )
22677     {
22678       pNext = pNext_;
22679       return *this;
22680     }
22681 
setFlagsVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22682     BufferViewCreateInfo & setFlags( vk::BufferViewCreateFlags flags_ )
22683     {
22684       flags = flags_;
22685       return *this;
22686     }
22687 
setBufferVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22688     BufferViewCreateInfo & setBuffer( vk::Buffer buffer_ )
22689     {
22690       buffer = buffer_;
22691       return *this;
22692     }
22693 
setFormatVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22694     BufferViewCreateInfo & setFormat( vk::Format format_ )
22695     {
22696       format = format_;
22697       return *this;
22698     }
22699 
setOffsetVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22700     BufferViewCreateInfo & setOffset( vk::DeviceSize offset_ )
22701     {
22702       offset = offset_;
22703       return *this;
22704     }
22705 
setRangeVULKAN_HPP_NAMESPACE::BufferViewCreateInfo22706     BufferViewCreateInfo & setRange( vk::DeviceSize range_ )
22707     {
22708       range = range_;
22709       return *this;
22710     }
22711 
operator VkBufferViewCreateInfo const&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22712     operator VkBufferViewCreateInfo const&() const
22713     {
22714       return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
22715     }
22716 
operator VkBufferViewCreateInfo&VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22717     operator VkBufferViewCreateInfo &()
22718     {
22719       return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
22720     }
22721 
operator ==VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22722     bool operator==( BufferViewCreateInfo const& rhs ) const
22723     {
22724       return ( sType == rhs.sType )
22725           && ( pNext == rhs.pNext )
22726           && ( flags == rhs.flags )
22727           && ( buffer == rhs.buffer )
22728           && ( format == rhs.format )
22729           && ( offset == rhs.offset )
22730           && ( range == rhs.range );
22731     }
22732 
operator !=VULKAN_HPP_NAMESPACE::BufferViewCreateInfo22733     bool operator!=( BufferViewCreateInfo const& rhs ) const
22734     {
22735       return !operator==( rhs );
22736     }
22737 
22738   private:
22739     using layout::BufferViewCreateInfo::sType;
22740   };
22741   static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
22742   static_assert( std::is_standard_layout<BufferViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
22743 
22744   namespace layout
22745   {
22746     struct CalibratedTimestampInfoEXT
22747     {
22748     protected:
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::layout::CalibratedTimestampInfoEXT22749       CalibratedTimestampInfoEXT( vk::TimeDomainEXT timeDomain_ = vk::TimeDomainEXT::eDevice )
22750         : timeDomain( timeDomain_ )
22751       {}
22752 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::layout::CalibratedTimestampInfoEXT22753       CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs )
22754       {
22755         *reinterpret_cast<VkCalibratedTimestampInfoEXT*>(this) = rhs;
22756       }
22757 
operator =VULKAN_HPP_NAMESPACE::layout::CalibratedTimestampInfoEXT22758       CalibratedTimestampInfoEXT& operator=( VkCalibratedTimestampInfoEXT const & rhs )
22759       {
22760         *reinterpret_cast<VkCalibratedTimestampInfoEXT*>(this) = rhs;
22761         return *this;
22762       }
22763 
22764     public:
22765       vk::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
22766       const void* pNext = nullptr;
22767       vk::TimeDomainEXT timeDomain;
22768     };
22769     static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "layout struct and wrapper have different size!" );
22770   }
22771 
22772   struct CalibratedTimestampInfoEXT : public layout::CalibratedTimestampInfoEXT
22773   {
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22774     CalibratedTimestampInfoEXT( vk::TimeDomainEXT timeDomain_ = vk::TimeDomainEXT::eDevice )
22775       : layout::CalibratedTimestampInfoEXT( timeDomain_ )
22776     {}
22777 
CalibratedTimestampInfoEXTVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22778     CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs )
22779       : layout::CalibratedTimestampInfoEXT( rhs )
22780     {}
22781 
operator =VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22782     CalibratedTimestampInfoEXT& operator=( VkCalibratedTimestampInfoEXT const & rhs )
22783     {
22784       *reinterpret_cast<VkCalibratedTimestampInfoEXT*>(this) = rhs;
22785       return *this;
22786     }
22787 
setPNextVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22788     CalibratedTimestampInfoEXT & setPNext( const void* pNext_ )
22789     {
22790       pNext = pNext_;
22791       return *this;
22792     }
22793 
setTimeDomainVULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22794     CalibratedTimestampInfoEXT & setTimeDomain( vk::TimeDomainEXT timeDomain_ )
22795     {
22796       timeDomain = timeDomain_;
22797       return *this;
22798     }
22799 
operator VkCalibratedTimestampInfoEXT const&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22800     operator VkCalibratedTimestampInfoEXT const&() const
22801     {
22802       return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
22803     }
22804 
operator VkCalibratedTimestampInfoEXT&VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22805     operator VkCalibratedTimestampInfoEXT &()
22806     {
22807       return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
22808     }
22809 
operator ==VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22810     bool operator==( CalibratedTimestampInfoEXT const& rhs ) const
22811     {
22812       return ( sType == rhs.sType )
22813           && ( pNext == rhs.pNext )
22814           && ( timeDomain == rhs.timeDomain );
22815     }
22816 
operator !=VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT22817     bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const
22818     {
22819       return !operator==( rhs );
22820     }
22821 
22822   private:
22823     using layout::CalibratedTimestampInfoEXT::sType;
22824   };
22825   static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
22826   static_assert( std::is_standard_layout<CalibratedTimestampInfoEXT>::value, "struct wrapper is not a standard layout!" );
22827 
22828   namespace layout
22829   {
22830     struct CheckpointDataNV
22831     {
22832     protected:
CheckpointDataNVVULKAN_HPP_NAMESPACE::layout::CheckpointDataNV22833       CheckpointDataNV( vk::PipelineStageFlagBits stage_ = vk::PipelineStageFlagBits::eTopOfPipe,
22834                         void* pCheckpointMarker_ = nullptr )
22835         : stage( stage_ )
22836         , pCheckpointMarker( pCheckpointMarker_ )
22837       {}
22838 
CheckpointDataNVVULKAN_HPP_NAMESPACE::layout::CheckpointDataNV22839       CheckpointDataNV( VkCheckpointDataNV const & rhs )
22840       {
22841         *reinterpret_cast<VkCheckpointDataNV*>(this) = rhs;
22842       }
22843 
operator =VULKAN_HPP_NAMESPACE::layout::CheckpointDataNV22844       CheckpointDataNV& operator=( VkCheckpointDataNV const & rhs )
22845       {
22846         *reinterpret_cast<VkCheckpointDataNV*>(this) = rhs;
22847         return *this;
22848       }
22849 
22850     public:
22851       vk::StructureType sType = StructureType::eCheckpointDataNV;
22852       void* pNext = nullptr;
22853       vk::PipelineStageFlagBits stage;
22854       void* pCheckpointMarker;
22855     };
22856     static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "layout struct and wrapper have different size!" );
22857   }
22858 
22859   struct CheckpointDataNV : public layout::CheckpointDataNV
22860   {
operator VkCheckpointDataNV const&VULKAN_HPP_NAMESPACE::CheckpointDataNV22861     operator VkCheckpointDataNV const&() const
22862     {
22863       return *reinterpret_cast<const VkCheckpointDataNV*>( this );
22864     }
22865 
operator VkCheckpointDataNV&VULKAN_HPP_NAMESPACE::CheckpointDataNV22866     operator VkCheckpointDataNV &()
22867     {
22868       return *reinterpret_cast<VkCheckpointDataNV*>( this );
22869     }
22870 
operator ==VULKAN_HPP_NAMESPACE::CheckpointDataNV22871     bool operator==( CheckpointDataNV const& rhs ) const
22872     {
22873       return ( sType == rhs.sType )
22874           && ( pNext == rhs.pNext )
22875           && ( stage == rhs.stage )
22876           && ( pCheckpointMarker == rhs.pCheckpointMarker );
22877     }
22878 
operator !=VULKAN_HPP_NAMESPACE::CheckpointDataNV22879     bool operator!=( CheckpointDataNV const& rhs ) const
22880     {
22881       return !operator==( rhs );
22882     }
22883 
22884   private:
22885     using layout::CheckpointDataNV::sType;
22886   };
22887   static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
22888   static_assert( std::is_standard_layout<CheckpointDataNV>::value, "struct wrapper is not a standard layout!" );
22889 
22890   union ClearColorValue
22891   {
ClearColorValue(const std::array<float,4> & float32_={ { 0 } } )22892     ClearColorValue( const std::array<float,4>& float32_ = { { 0 } } )
22893     {
22894       memcpy( float32, float32_.data(), 4 * sizeof( float ) );
22895     }
22896 
ClearColorValue(const std::array<int32_t,4> & int32_)22897     ClearColorValue( const std::array<int32_t,4>& int32_ )
22898     {
22899       memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) );
22900     }
22901 
ClearColorValue(const std::array<uint32_t,4> & uint32_)22902     ClearColorValue( const std::array<uint32_t,4>& uint32_ )
22903     {
22904       memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) );
22905     }
22906 
setFloat32(std::array<float,4> float32_)22907     ClearColorValue & setFloat32( std::array<float,4> float32_ )
22908     {
22909       memcpy( float32, float32_.data(), 4 * sizeof( float ) );
22910       return *this;
22911     }
22912 
setInt32(std::array<int32_t,4> int32_)22913     ClearColorValue & setInt32( std::array<int32_t,4> int32_ )
22914     {
22915       memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) );
22916       return *this;
22917     }
22918 
setUint32(std::array<uint32_t,4> uint32_)22919     ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ )
22920     {
22921       memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) );
22922       return *this;
22923     }
operator VkClearColorValue const&() const22924     operator VkClearColorValue const&() const
22925     {
22926       return *reinterpret_cast<const VkClearColorValue*>(this);
22927     }
22928 
operator VkClearColorValue&()22929     operator VkClearColorValue &()
22930     {
22931       return *reinterpret_cast<VkClearColorValue*>(this);
22932     }
22933 
22934     float float32[4];
22935     int32_t int32[4];
22936     uint32_t uint32[4];
22937   };
22938 
22939   struct ClearDepthStencilValue
22940   {
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue22941     ClearDepthStencilValue( float depth_ = 0,
22942                             uint32_t stencil_ = 0 )
22943         : depth( depth_ )
22944         , stencil( stencil_ )
22945     {}
22946 
ClearDepthStencilValueVULKAN_HPP_NAMESPACE::ClearDepthStencilValue22947     ClearDepthStencilValue( VkClearDepthStencilValue const & rhs )
22948     {
22949       *reinterpret_cast<VkClearDepthStencilValue*>(this) = rhs;
22950     }
22951 
operator =VULKAN_HPP_NAMESPACE::ClearDepthStencilValue22952     ClearDepthStencilValue& operator=( VkClearDepthStencilValue const & rhs )
22953     {
22954       *reinterpret_cast<VkClearDepthStencilValue*>(this) = rhs;
22955       return *this;
22956     }
22957 
setDepthVULKAN_HPP_NAMESPACE::ClearDepthStencilValue22958     ClearDepthStencilValue & setDepth( float depth_ )
22959     {
22960       depth = depth_;
22961       return *this;
22962     }
22963 
setStencilVULKAN_HPP_NAMESPACE::ClearDepthStencilValue22964     ClearDepthStencilValue & setStencil( uint32_t stencil_ )
22965     {
22966       stencil = stencil_;
22967       return *this;
22968     }
22969 
operator VkClearDepthStencilValue const&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue22970     operator VkClearDepthStencilValue const&() const
22971     {
22972       return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
22973     }
22974 
operator VkClearDepthStencilValue&VULKAN_HPP_NAMESPACE::ClearDepthStencilValue22975     operator VkClearDepthStencilValue &()
22976     {
22977       return *reinterpret_cast<VkClearDepthStencilValue*>( this );
22978     }
22979 
operator ==VULKAN_HPP_NAMESPACE::ClearDepthStencilValue22980     bool operator==( ClearDepthStencilValue const& rhs ) const
22981     {
22982       return ( depth == rhs.depth )
22983           && ( stencil == rhs.stencil );
22984     }
22985 
operator !=VULKAN_HPP_NAMESPACE::ClearDepthStencilValue22986     bool operator!=( ClearDepthStencilValue const& rhs ) const
22987     {
22988       return !operator==( rhs );
22989     }
22990 
22991   public:
22992     float depth;
22993     uint32_t stencil;
22994   };
22995   static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
22996   static_assert( std::is_standard_layout<ClearDepthStencilValue>::value, "struct wrapper is not a standard layout!" );
22997 
22998   union ClearValue
22999   {
ClearValue(vk::ClearColorValue color_=vk::ClearColorValue ())23000     ClearValue( vk::ClearColorValue color_ = vk::ClearColorValue() )
23001     {
23002       color = color_;
23003     }
23004 
ClearValue(vk::ClearDepthStencilValue depthStencil_)23005     ClearValue( vk::ClearDepthStencilValue depthStencil_ )
23006     {
23007       depthStencil = depthStencil_;
23008     }
23009 
setColor(vk::ClearColorValue color_)23010     ClearValue & setColor( vk::ClearColorValue color_ )
23011     {
23012       color = color_;
23013       return *this;
23014     }
23015 
setDepthStencil(vk::ClearDepthStencilValue depthStencil_)23016     ClearValue & setDepthStencil( vk::ClearDepthStencilValue depthStencil_ )
23017     {
23018       depthStencil = depthStencil_;
23019       return *this;
23020     }
operator VkClearValue const&() const23021     operator VkClearValue const&() const
23022     {
23023       return *reinterpret_cast<const VkClearValue*>(this);
23024     }
23025 
operator VkClearValue&()23026     operator VkClearValue &()
23027     {
23028       return *reinterpret_cast<VkClearValue*>(this);
23029     }
23030 
23031 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
23032     vk::ClearColorValue color;
23033     vk::ClearDepthStencilValue depthStencil;
23034 #else
23035     VkClearColorValue color;
23036     VkClearDepthStencilValue depthStencil;
23037 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
23038   };
23039 
23040   struct ClearAttachment
23041   {
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23042     ClearAttachment( vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags(),
23043                      uint32_t colorAttachment_ = 0,
23044                      vk::ClearValue clearValue_ = vk::ClearValue() )
23045         : aspectMask( aspectMask_ )
23046         , colorAttachment( colorAttachment_ )
23047         , clearValue( clearValue_ )
23048     {}
23049 
ClearAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23050     ClearAttachment( VkClearAttachment const & rhs )
23051     {
23052       *reinterpret_cast<VkClearAttachment*>(this) = rhs;
23053     }
23054 
operator =VULKAN_HPP_NAMESPACE::ClearAttachment23055     ClearAttachment& operator=( VkClearAttachment const & rhs )
23056     {
23057       *reinterpret_cast<VkClearAttachment*>(this) = rhs;
23058       return *this;
23059     }
23060 
setAspectMaskVULKAN_HPP_NAMESPACE::ClearAttachment23061     ClearAttachment & setAspectMask( vk::ImageAspectFlags aspectMask_ )
23062     {
23063       aspectMask = aspectMask_;
23064       return *this;
23065     }
23066 
setColorAttachmentVULKAN_HPP_NAMESPACE::ClearAttachment23067     ClearAttachment & setColorAttachment( uint32_t colorAttachment_ )
23068     {
23069       colorAttachment = colorAttachment_;
23070       return *this;
23071     }
23072 
setClearValueVULKAN_HPP_NAMESPACE::ClearAttachment23073     ClearAttachment & setClearValue( vk::ClearValue clearValue_ )
23074     {
23075       clearValue = clearValue_;
23076       return *this;
23077     }
23078 
operator VkClearAttachment const&VULKAN_HPP_NAMESPACE::ClearAttachment23079     operator VkClearAttachment const&() const
23080     {
23081       return *reinterpret_cast<const VkClearAttachment*>( this );
23082     }
23083 
operator VkClearAttachment&VULKAN_HPP_NAMESPACE::ClearAttachment23084     operator VkClearAttachment &()
23085     {
23086       return *reinterpret_cast<VkClearAttachment*>( this );
23087     }
23088 
23089   public:
23090     vk::ImageAspectFlags aspectMask;
23091     uint32_t colorAttachment;
23092     vk::ClearValue clearValue;
23093   };
23094   static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
23095   static_assert( std::is_standard_layout<ClearAttachment>::value, "struct wrapper is not a standard layout!" );
23096 
23097   struct ClearRect
23098   {
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23099     ClearRect( vk::Rect2D rect_ = vk::Rect2D(),
23100                uint32_t baseArrayLayer_ = 0,
23101                uint32_t layerCount_ = 0 )
23102         : rect( rect_ )
23103         , baseArrayLayer( baseArrayLayer_ )
23104         , layerCount( layerCount_ )
23105     {}
23106 
ClearRectVULKAN_HPP_NAMESPACE::ClearRect23107     ClearRect( VkClearRect const & rhs )
23108     {
23109       *reinterpret_cast<VkClearRect*>(this) = rhs;
23110     }
23111 
operator =VULKAN_HPP_NAMESPACE::ClearRect23112     ClearRect& operator=( VkClearRect const & rhs )
23113     {
23114       *reinterpret_cast<VkClearRect*>(this) = rhs;
23115       return *this;
23116     }
23117 
setRectVULKAN_HPP_NAMESPACE::ClearRect23118     ClearRect & setRect( vk::Rect2D rect_ )
23119     {
23120       rect = rect_;
23121       return *this;
23122     }
23123 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ClearRect23124     ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ )
23125     {
23126       baseArrayLayer = baseArrayLayer_;
23127       return *this;
23128     }
23129 
setLayerCountVULKAN_HPP_NAMESPACE::ClearRect23130     ClearRect & setLayerCount( uint32_t layerCount_ )
23131     {
23132       layerCount = layerCount_;
23133       return *this;
23134     }
23135 
operator VkClearRect const&VULKAN_HPP_NAMESPACE::ClearRect23136     operator VkClearRect const&() const
23137     {
23138       return *reinterpret_cast<const VkClearRect*>( this );
23139     }
23140 
operator VkClearRect&VULKAN_HPP_NAMESPACE::ClearRect23141     operator VkClearRect &()
23142     {
23143       return *reinterpret_cast<VkClearRect*>( this );
23144     }
23145 
operator ==VULKAN_HPP_NAMESPACE::ClearRect23146     bool operator==( ClearRect const& rhs ) const
23147     {
23148       return ( rect == rhs.rect )
23149           && ( baseArrayLayer == rhs.baseArrayLayer )
23150           && ( layerCount == rhs.layerCount );
23151     }
23152 
operator !=VULKAN_HPP_NAMESPACE::ClearRect23153     bool operator!=( ClearRect const& rhs ) const
23154     {
23155       return !operator==( rhs );
23156     }
23157 
23158   public:
23159     vk::Rect2D rect;
23160     uint32_t baseArrayLayer;
23161     uint32_t layerCount;
23162   };
23163   static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
23164   static_assert( std::is_standard_layout<ClearRect>::value, "struct wrapper is not a standard layout!" );
23165 
23166   struct IndirectCommandsTokenNVX
23167   {
IndirectCommandsTokenNVXVULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23168     IndirectCommandsTokenNVX( vk::IndirectCommandsTokenTypeNVX tokenType_ = vk::IndirectCommandsTokenTypeNVX::ePipeline,
23169                               vk::Buffer buffer_ = vk::Buffer(),
23170                               vk::DeviceSize offset_ = 0 )
23171         : tokenType( tokenType_ )
23172         , buffer( buffer_ )
23173         , offset( offset_ )
23174     {}
23175 
IndirectCommandsTokenNVXVULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23176     IndirectCommandsTokenNVX( VkIndirectCommandsTokenNVX const & rhs )
23177     {
23178       *reinterpret_cast<VkIndirectCommandsTokenNVX*>(this) = rhs;
23179     }
23180 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23181     IndirectCommandsTokenNVX& operator=( VkIndirectCommandsTokenNVX const & rhs )
23182     {
23183       *reinterpret_cast<VkIndirectCommandsTokenNVX*>(this) = rhs;
23184       return *this;
23185     }
23186 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23187     IndirectCommandsTokenNVX & setTokenType( vk::IndirectCommandsTokenTypeNVX tokenType_ )
23188     {
23189       tokenType = tokenType_;
23190       return *this;
23191     }
23192 
setBufferVULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23193     IndirectCommandsTokenNVX & setBuffer( vk::Buffer buffer_ )
23194     {
23195       buffer = buffer_;
23196       return *this;
23197     }
23198 
setOffsetVULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23199     IndirectCommandsTokenNVX & setOffset( vk::DeviceSize offset_ )
23200     {
23201       offset = offset_;
23202       return *this;
23203     }
23204 
operator VkIndirectCommandsTokenNVX const&VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23205     operator VkIndirectCommandsTokenNVX const&() const
23206     {
23207       return *reinterpret_cast<const VkIndirectCommandsTokenNVX*>( this );
23208     }
23209 
operator VkIndirectCommandsTokenNVX&VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23210     operator VkIndirectCommandsTokenNVX &()
23211     {
23212       return *reinterpret_cast<VkIndirectCommandsTokenNVX*>( this );
23213     }
23214 
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23215     bool operator==( IndirectCommandsTokenNVX const& rhs ) const
23216     {
23217       return ( tokenType == rhs.tokenType )
23218           && ( buffer == rhs.buffer )
23219           && ( offset == rhs.offset );
23220     }
23221 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX23222     bool operator!=( IndirectCommandsTokenNVX const& rhs ) const
23223     {
23224       return !operator==( rhs );
23225     }
23226 
23227   public:
23228     vk::IndirectCommandsTokenTypeNVX tokenType;
23229     vk::Buffer buffer;
23230     vk::DeviceSize offset;
23231   };
23232   static_assert( sizeof( IndirectCommandsTokenNVX ) == sizeof( VkIndirectCommandsTokenNVX ), "struct and wrapper have different size!" );
23233   static_assert( std::is_standard_layout<IndirectCommandsTokenNVX>::value, "struct wrapper is not a standard layout!" );
23234 
23235   namespace layout
23236   {
23237     struct CmdProcessCommandsInfoNVX
23238     {
23239     protected:
CmdProcessCommandsInfoNVXVULKAN_HPP_NAMESPACE::layout::CmdProcessCommandsInfoNVX23240       CmdProcessCommandsInfoNVX( vk::ObjectTableNVX objectTable_ = vk::ObjectTableNVX(),
23241                                  vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ = vk::IndirectCommandsLayoutNVX(),
23242                                  uint32_t indirectCommandsTokenCount_ = 0,
23243                                  const vk::IndirectCommandsTokenNVX* pIndirectCommandsTokens_ = nullptr,
23244                                  uint32_t maxSequencesCount_ = 0,
23245                                  vk::CommandBuffer targetCommandBuffer_ = vk::CommandBuffer(),
23246                                  vk::Buffer sequencesCountBuffer_ = vk::Buffer(),
23247                                  vk::DeviceSize sequencesCountOffset_ = 0,
23248                                  vk::Buffer sequencesIndexBuffer_ = vk::Buffer(),
23249                                  vk::DeviceSize sequencesIndexOffset_ = 0 )
23250         : objectTable( objectTable_ )
23251         , indirectCommandsLayout( indirectCommandsLayout_ )
23252         , indirectCommandsTokenCount( indirectCommandsTokenCount_ )
23253         , pIndirectCommandsTokens( pIndirectCommandsTokens_ )
23254         , maxSequencesCount( maxSequencesCount_ )
23255         , targetCommandBuffer( targetCommandBuffer_ )
23256         , sequencesCountBuffer( sequencesCountBuffer_ )
23257         , sequencesCountOffset( sequencesCountOffset_ )
23258         , sequencesIndexBuffer( sequencesIndexBuffer_ )
23259         , sequencesIndexOffset( sequencesIndexOffset_ )
23260       {}
23261 
CmdProcessCommandsInfoNVXVULKAN_HPP_NAMESPACE::layout::CmdProcessCommandsInfoNVX23262       CmdProcessCommandsInfoNVX( VkCmdProcessCommandsInfoNVX const & rhs )
23263       {
23264         *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this) = rhs;
23265       }
23266 
operator =VULKAN_HPP_NAMESPACE::layout::CmdProcessCommandsInfoNVX23267       CmdProcessCommandsInfoNVX& operator=( VkCmdProcessCommandsInfoNVX const & rhs )
23268       {
23269         *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this) = rhs;
23270         return *this;
23271       }
23272 
23273     public:
23274       vk::StructureType sType = StructureType::eCmdProcessCommandsInfoNVX;
23275       const void* pNext = nullptr;
23276       vk::ObjectTableNVX objectTable;
23277       vk::IndirectCommandsLayoutNVX indirectCommandsLayout;
23278       uint32_t indirectCommandsTokenCount;
23279       const vk::IndirectCommandsTokenNVX* pIndirectCommandsTokens;
23280       uint32_t maxSequencesCount;
23281       vk::CommandBuffer targetCommandBuffer;
23282       vk::Buffer sequencesCountBuffer;
23283       vk::DeviceSize sequencesCountOffset;
23284       vk::Buffer sequencesIndexBuffer;
23285       vk::DeviceSize sequencesIndexOffset;
23286     };
23287     static_assert( sizeof( CmdProcessCommandsInfoNVX ) == sizeof( VkCmdProcessCommandsInfoNVX ), "layout struct and wrapper have different size!" );
23288   }
23289 
23290   struct CmdProcessCommandsInfoNVX : public layout::CmdProcessCommandsInfoNVX
23291   {
CmdProcessCommandsInfoNVXVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23292     CmdProcessCommandsInfoNVX( vk::ObjectTableNVX objectTable_ = vk::ObjectTableNVX(),
23293                                vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ = vk::IndirectCommandsLayoutNVX(),
23294                                uint32_t indirectCommandsTokenCount_ = 0,
23295                                const vk::IndirectCommandsTokenNVX* pIndirectCommandsTokens_ = nullptr,
23296                                uint32_t maxSequencesCount_ = 0,
23297                                vk::CommandBuffer targetCommandBuffer_ = vk::CommandBuffer(),
23298                                vk::Buffer sequencesCountBuffer_ = vk::Buffer(),
23299                                vk::DeviceSize sequencesCountOffset_ = 0,
23300                                vk::Buffer sequencesIndexBuffer_ = vk::Buffer(),
23301                                vk::DeviceSize sequencesIndexOffset_ = 0 )
23302       : layout::CmdProcessCommandsInfoNVX( objectTable_, indirectCommandsLayout_, indirectCommandsTokenCount_, pIndirectCommandsTokens_, maxSequencesCount_, targetCommandBuffer_, sequencesCountBuffer_, sequencesCountOffset_, sequencesIndexBuffer_, sequencesIndexOffset_ )
23303     {}
23304 
CmdProcessCommandsInfoNVXVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23305     CmdProcessCommandsInfoNVX( VkCmdProcessCommandsInfoNVX const & rhs )
23306       : layout::CmdProcessCommandsInfoNVX( rhs )
23307     {}
23308 
operator =VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23309     CmdProcessCommandsInfoNVX& operator=( VkCmdProcessCommandsInfoNVX const & rhs )
23310     {
23311       *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this) = rhs;
23312       return *this;
23313     }
23314 
setPNextVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23315     CmdProcessCommandsInfoNVX & setPNext( const void* pNext_ )
23316     {
23317       pNext = pNext_;
23318       return *this;
23319     }
23320 
setObjectTableVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23321     CmdProcessCommandsInfoNVX & setObjectTable( vk::ObjectTableNVX objectTable_ )
23322     {
23323       objectTable = objectTable_;
23324       return *this;
23325     }
23326 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23327     CmdProcessCommandsInfoNVX & setIndirectCommandsLayout( vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ )
23328     {
23329       indirectCommandsLayout = indirectCommandsLayout_;
23330       return *this;
23331     }
23332 
setIndirectCommandsTokenCountVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23333     CmdProcessCommandsInfoNVX & setIndirectCommandsTokenCount( uint32_t indirectCommandsTokenCount_ )
23334     {
23335       indirectCommandsTokenCount = indirectCommandsTokenCount_;
23336       return *this;
23337     }
23338 
setPIndirectCommandsTokensVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23339     CmdProcessCommandsInfoNVX & setPIndirectCommandsTokens( const vk::IndirectCommandsTokenNVX* pIndirectCommandsTokens_ )
23340     {
23341       pIndirectCommandsTokens = pIndirectCommandsTokens_;
23342       return *this;
23343     }
23344 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23345     CmdProcessCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ )
23346     {
23347       maxSequencesCount = maxSequencesCount_;
23348       return *this;
23349     }
23350 
setTargetCommandBufferVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23351     CmdProcessCommandsInfoNVX & setTargetCommandBuffer( vk::CommandBuffer targetCommandBuffer_ )
23352     {
23353       targetCommandBuffer = targetCommandBuffer_;
23354       return *this;
23355     }
23356 
setSequencesCountBufferVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23357     CmdProcessCommandsInfoNVX & setSequencesCountBuffer( vk::Buffer sequencesCountBuffer_ )
23358     {
23359       sequencesCountBuffer = sequencesCountBuffer_;
23360       return *this;
23361     }
23362 
setSequencesCountOffsetVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23363     CmdProcessCommandsInfoNVX & setSequencesCountOffset( vk::DeviceSize sequencesCountOffset_ )
23364     {
23365       sequencesCountOffset = sequencesCountOffset_;
23366       return *this;
23367     }
23368 
setSequencesIndexBufferVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23369     CmdProcessCommandsInfoNVX & setSequencesIndexBuffer( vk::Buffer sequencesIndexBuffer_ )
23370     {
23371       sequencesIndexBuffer = sequencesIndexBuffer_;
23372       return *this;
23373     }
23374 
setSequencesIndexOffsetVULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23375     CmdProcessCommandsInfoNVX & setSequencesIndexOffset( vk::DeviceSize sequencesIndexOffset_ )
23376     {
23377       sequencesIndexOffset = sequencesIndexOffset_;
23378       return *this;
23379     }
23380 
operator VkCmdProcessCommandsInfoNVX const&VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23381     operator VkCmdProcessCommandsInfoNVX const&() const
23382     {
23383       return *reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( this );
23384     }
23385 
operator VkCmdProcessCommandsInfoNVX&VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23386     operator VkCmdProcessCommandsInfoNVX &()
23387     {
23388       return *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>( this );
23389     }
23390 
operator ==VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23391     bool operator==( CmdProcessCommandsInfoNVX const& rhs ) const
23392     {
23393       return ( sType == rhs.sType )
23394           && ( pNext == rhs.pNext )
23395           && ( objectTable == rhs.objectTable )
23396           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
23397           && ( indirectCommandsTokenCount == rhs.indirectCommandsTokenCount )
23398           && ( pIndirectCommandsTokens == rhs.pIndirectCommandsTokens )
23399           && ( maxSequencesCount == rhs.maxSequencesCount )
23400           && ( targetCommandBuffer == rhs.targetCommandBuffer )
23401           && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
23402           && ( sequencesCountOffset == rhs.sequencesCountOffset )
23403           && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
23404           && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
23405     }
23406 
operator !=VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX23407     bool operator!=( CmdProcessCommandsInfoNVX const& rhs ) const
23408     {
23409       return !operator==( rhs );
23410     }
23411 
23412   private:
23413     using layout::CmdProcessCommandsInfoNVX::sType;
23414   };
23415   static_assert( sizeof( CmdProcessCommandsInfoNVX ) == sizeof( VkCmdProcessCommandsInfoNVX ), "struct and wrapper have different size!" );
23416   static_assert( std::is_standard_layout<CmdProcessCommandsInfoNVX>::value, "struct wrapper is not a standard layout!" );
23417 
23418   namespace layout
23419   {
23420     struct CmdReserveSpaceForCommandsInfoNVX
23421     {
23422     protected:
CmdReserveSpaceForCommandsInfoNVXVULKAN_HPP_NAMESPACE::layout::CmdReserveSpaceForCommandsInfoNVX23423       CmdReserveSpaceForCommandsInfoNVX( vk::ObjectTableNVX objectTable_ = vk::ObjectTableNVX(),
23424                                          vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ = vk::IndirectCommandsLayoutNVX(),
23425                                          uint32_t maxSequencesCount_ = 0 )
23426         : objectTable( objectTable_ )
23427         , indirectCommandsLayout( indirectCommandsLayout_ )
23428         , maxSequencesCount( maxSequencesCount_ )
23429       {}
23430 
CmdReserveSpaceForCommandsInfoNVXVULKAN_HPP_NAMESPACE::layout::CmdReserveSpaceForCommandsInfoNVX23431       CmdReserveSpaceForCommandsInfoNVX( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
23432       {
23433         *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this) = rhs;
23434       }
23435 
operator =VULKAN_HPP_NAMESPACE::layout::CmdReserveSpaceForCommandsInfoNVX23436       CmdReserveSpaceForCommandsInfoNVX& operator=( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
23437       {
23438         *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this) = rhs;
23439         return *this;
23440       }
23441 
23442     public:
23443       vk::StructureType sType = StructureType::eCmdReserveSpaceForCommandsInfoNVX;
23444       const void* pNext = nullptr;
23445       vk::ObjectTableNVX objectTable;
23446       vk::IndirectCommandsLayoutNVX indirectCommandsLayout;
23447       uint32_t maxSequencesCount;
23448     };
23449     static_assert( sizeof( CmdReserveSpaceForCommandsInfoNVX ) == sizeof( VkCmdReserveSpaceForCommandsInfoNVX ), "layout struct and wrapper have different size!" );
23450   }
23451 
23452   struct CmdReserveSpaceForCommandsInfoNVX : public layout::CmdReserveSpaceForCommandsInfoNVX
23453   {
CmdReserveSpaceForCommandsInfoNVXVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23454     CmdReserveSpaceForCommandsInfoNVX( vk::ObjectTableNVX objectTable_ = vk::ObjectTableNVX(),
23455                                        vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ = vk::IndirectCommandsLayoutNVX(),
23456                                        uint32_t maxSequencesCount_ = 0 )
23457       : layout::CmdReserveSpaceForCommandsInfoNVX( objectTable_, indirectCommandsLayout_, maxSequencesCount_ )
23458     {}
23459 
CmdReserveSpaceForCommandsInfoNVXVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23460     CmdReserveSpaceForCommandsInfoNVX( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
23461       : layout::CmdReserveSpaceForCommandsInfoNVX( rhs )
23462     {}
23463 
operator =VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23464     CmdReserveSpaceForCommandsInfoNVX& operator=( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
23465     {
23466       *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this) = rhs;
23467       return *this;
23468     }
23469 
setPNextVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23470     CmdReserveSpaceForCommandsInfoNVX & setPNext( const void* pNext_ )
23471     {
23472       pNext = pNext_;
23473       return *this;
23474     }
23475 
setObjectTableVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23476     CmdReserveSpaceForCommandsInfoNVX & setObjectTable( vk::ObjectTableNVX objectTable_ )
23477     {
23478       objectTable = objectTable_;
23479       return *this;
23480     }
23481 
setIndirectCommandsLayoutVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23482     CmdReserveSpaceForCommandsInfoNVX & setIndirectCommandsLayout( vk::IndirectCommandsLayoutNVX indirectCommandsLayout_ )
23483     {
23484       indirectCommandsLayout = indirectCommandsLayout_;
23485       return *this;
23486     }
23487 
setMaxSequencesCountVULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23488     CmdReserveSpaceForCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ )
23489     {
23490       maxSequencesCount = maxSequencesCount_;
23491       return *this;
23492     }
23493 
operator VkCmdReserveSpaceForCommandsInfoNVX const&VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23494     operator VkCmdReserveSpaceForCommandsInfoNVX const&() const
23495     {
23496       return *reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( this );
23497     }
23498 
operator VkCmdReserveSpaceForCommandsInfoNVX&VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23499     operator VkCmdReserveSpaceForCommandsInfoNVX &()
23500     {
23501       return *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>( this );
23502     }
23503 
operator ==VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23504     bool operator==( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const
23505     {
23506       return ( sType == rhs.sType )
23507           && ( pNext == rhs.pNext )
23508           && ( objectTable == rhs.objectTable )
23509           && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
23510           && ( maxSequencesCount == rhs.maxSequencesCount );
23511     }
23512 
operator !=VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX23513     bool operator!=( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const
23514     {
23515       return !operator==( rhs );
23516     }
23517 
23518   private:
23519     using layout::CmdReserveSpaceForCommandsInfoNVX::sType;
23520   };
23521   static_assert( sizeof( CmdReserveSpaceForCommandsInfoNVX ) == sizeof( VkCmdReserveSpaceForCommandsInfoNVX ), "struct and wrapper have different size!" );
23522   static_assert( std::is_standard_layout<CmdReserveSpaceForCommandsInfoNVX>::value, "struct wrapper is not a standard layout!" );
23523 
23524   struct CoarseSampleLocationNV
23525   {
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23526     CoarseSampleLocationNV( uint32_t pixelX_ = 0,
23527                             uint32_t pixelY_ = 0,
23528                             uint32_t sample_ = 0 )
23529         : pixelX( pixelX_ )
23530         , pixelY( pixelY_ )
23531         , sample( sample_ )
23532     {}
23533 
CoarseSampleLocationNVVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23534     CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs )
23535     {
23536       *reinterpret_cast<VkCoarseSampleLocationNV*>(this) = rhs;
23537     }
23538 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23539     CoarseSampleLocationNV& operator=( VkCoarseSampleLocationNV const & rhs )
23540     {
23541       *reinterpret_cast<VkCoarseSampleLocationNV*>(this) = rhs;
23542       return *this;
23543     }
23544 
setPixelXVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23545     CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ )
23546     {
23547       pixelX = pixelX_;
23548       return *this;
23549     }
23550 
setPixelYVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23551     CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ )
23552     {
23553       pixelY = pixelY_;
23554       return *this;
23555     }
23556 
setSampleVULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23557     CoarseSampleLocationNV & setSample( uint32_t sample_ )
23558     {
23559       sample = sample_;
23560       return *this;
23561     }
23562 
operator VkCoarseSampleLocationNV const&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23563     operator VkCoarseSampleLocationNV const&() const
23564     {
23565       return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
23566     }
23567 
operator VkCoarseSampleLocationNV&VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23568     operator VkCoarseSampleLocationNV &()
23569     {
23570       return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
23571     }
23572 
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23573     bool operator==( CoarseSampleLocationNV const& rhs ) const
23574     {
23575       return ( pixelX == rhs.pixelX )
23576           && ( pixelY == rhs.pixelY )
23577           && ( sample == rhs.sample );
23578     }
23579 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV23580     bool operator!=( CoarseSampleLocationNV const& rhs ) const
23581     {
23582       return !operator==( rhs );
23583     }
23584 
23585   public:
23586     uint32_t pixelX;
23587     uint32_t pixelY;
23588     uint32_t sample;
23589   };
23590   static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
23591   static_assert( std::is_standard_layout<CoarseSampleLocationNV>::value, "struct wrapper is not a standard layout!" );
23592 
23593   struct CoarseSampleOrderCustomNV
23594   {
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23595     CoarseSampleOrderCustomNV( vk::ShadingRatePaletteEntryNV shadingRate_ = vk::ShadingRatePaletteEntryNV::eNoInvocations,
23596                                uint32_t sampleCount_ = 0,
23597                                uint32_t sampleLocationCount_ = 0,
23598                                const vk::CoarseSampleLocationNV* pSampleLocations_ = nullptr )
23599         : shadingRate( shadingRate_ )
23600         , sampleCount( sampleCount_ )
23601         , sampleLocationCount( sampleLocationCount_ )
23602         , pSampleLocations( pSampleLocations_ )
23603     {}
23604 
CoarseSampleOrderCustomNVVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23605     CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs )
23606     {
23607       *reinterpret_cast<VkCoarseSampleOrderCustomNV*>(this) = rhs;
23608     }
23609 
operator =VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23610     CoarseSampleOrderCustomNV& operator=( VkCoarseSampleOrderCustomNV const & rhs )
23611     {
23612       *reinterpret_cast<VkCoarseSampleOrderCustomNV*>(this) = rhs;
23613       return *this;
23614     }
23615 
setShadingRateVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23616     CoarseSampleOrderCustomNV & setShadingRate( vk::ShadingRatePaletteEntryNV shadingRate_ )
23617     {
23618       shadingRate = shadingRate_;
23619       return *this;
23620     }
23621 
setSampleCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23622     CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ )
23623     {
23624       sampleCount = sampleCount_;
23625       return *this;
23626     }
23627 
setSampleLocationCountVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23628     CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ )
23629     {
23630       sampleLocationCount = sampleLocationCount_;
23631       return *this;
23632     }
23633 
setPSampleLocationsVULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23634     CoarseSampleOrderCustomNV & setPSampleLocations( const vk::CoarseSampleLocationNV* pSampleLocations_ )
23635     {
23636       pSampleLocations = pSampleLocations_;
23637       return *this;
23638     }
23639 
operator VkCoarseSampleOrderCustomNV const&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23640     operator VkCoarseSampleOrderCustomNV const&() const
23641     {
23642       return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
23643     }
23644 
operator VkCoarseSampleOrderCustomNV&VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23645     operator VkCoarseSampleOrderCustomNV &()
23646     {
23647       return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
23648     }
23649 
operator ==VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23650     bool operator==( CoarseSampleOrderCustomNV const& rhs ) const
23651     {
23652       return ( shadingRate == rhs.shadingRate )
23653           && ( sampleCount == rhs.sampleCount )
23654           && ( sampleLocationCount == rhs.sampleLocationCount )
23655           && ( pSampleLocations == rhs.pSampleLocations );
23656     }
23657 
operator !=VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV23658     bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const
23659     {
23660       return !operator==( rhs );
23661     }
23662 
23663   public:
23664     vk::ShadingRatePaletteEntryNV shadingRate;
23665     uint32_t sampleCount;
23666     uint32_t sampleLocationCount;
23667     const vk::CoarseSampleLocationNV* pSampleLocations;
23668   };
23669   static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
23670   static_assert( std::is_standard_layout<CoarseSampleOrderCustomNV>::value, "struct wrapper is not a standard layout!" );
23671 
23672   namespace layout
23673   {
23674     struct CommandBufferAllocateInfo
23675     {
23676     protected:
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferAllocateInfo23677       CommandBufferAllocateInfo( vk::CommandPool commandPool_ = vk::CommandPool(),
23678                                  vk::CommandBufferLevel level_ = vk::CommandBufferLevel::ePrimary,
23679                                  uint32_t commandBufferCount_ = 0 )
23680         : commandPool( commandPool_ )
23681         , level( level_ )
23682         , commandBufferCount( commandBufferCount_ )
23683       {}
23684 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferAllocateInfo23685       CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs )
23686       {
23687         *reinterpret_cast<VkCommandBufferAllocateInfo*>(this) = rhs;
23688       }
23689 
operator =VULKAN_HPP_NAMESPACE::layout::CommandBufferAllocateInfo23690       CommandBufferAllocateInfo& operator=( VkCommandBufferAllocateInfo const & rhs )
23691       {
23692         *reinterpret_cast<VkCommandBufferAllocateInfo*>(this) = rhs;
23693         return *this;
23694       }
23695 
23696     public:
23697       vk::StructureType sType = StructureType::eCommandBufferAllocateInfo;
23698       const void* pNext = nullptr;
23699       vk::CommandPool commandPool;
23700       vk::CommandBufferLevel level;
23701       uint32_t commandBufferCount;
23702     };
23703     static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "layout struct and wrapper have different size!" );
23704   }
23705 
23706   struct CommandBufferAllocateInfo : public layout::CommandBufferAllocateInfo
23707   {
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23708     CommandBufferAllocateInfo( vk::CommandPool commandPool_ = vk::CommandPool(),
23709                                vk::CommandBufferLevel level_ = vk::CommandBufferLevel::ePrimary,
23710                                uint32_t commandBufferCount_ = 0 )
23711       : layout::CommandBufferAllocateInfo( commandPool_, level_, commandBufferCount_ )
23712     {}
23713 
CommandBufferAllocateInfoVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23714     CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs )
23715       : layout::CommandBufferAllocateInfo( rhs )
23716     {}
23717 
operator =VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23718     CommandBufferAllocateInfo& operator=( VkCommandBufferAllocateInfo const & rhs )
23719     {
23720       *reinterpret_cast<VkCommandBufferAllocateInfo*>(this) = rhs;
23721       return *this;
23722     }
23723 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23724     CommandBufferAllocateInfo & setPNext( const void* pNext_ )
23725     {
23726       pNext = pNext_;
23727       return *this;
23728     }
23729 
setCommandPoolVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23730     CommandBufferAllocateInfo & setCommandPool( vk::CommandPool commandPool_ )
23731     {
23732       commandPool = commandPool_;
23733       return *this;
23734     }
23735 
setLevelVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23736     CommandBufferAllocateInfo & setLevel( vk::CommandBufferLevel level_ )
23737     {
23738       level = level_;
23739       return *this;
23740     }
23741 
setCommandBufferCountVULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23742     CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
23743     {
23744       commandBufferCount = commandBufferCount_;
23745       return *this;
23746     }
23747 
operator VkCommandBufferAllocateInfo const&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23748     operator VkCommandBufferAllocateInfo const&() const
23749     {
23750       return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
23751     }
23752 
operator VkCommandBufferAllocateInfo&VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23753     operator VkCommandBufferAllocateInfo &()
23754     {
23755       return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
23756     }
23757 
operator ==VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23758     bool operator==( CommandBufferAllocateInfo const& rhs ) const
23759     {
23760       return ( sType == rhs.sType )
23761           && ( pNext == rhs.pNext )
23762           && ( commandPool == rhs.commandPool )
23763           && ( level == rhs.level )
23764           && ( commandBufferCount == rhs.commandBufferCount );
23765     }
23766 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo23767     bool operator!=( CommandBufferAllocateInfo const& rhs ) const
23768     {
23769       return !operator==( rhs );
23770     }
23771 
23772   private:
23773     using layout::CommandBufferAllocateInfo::sType;
23774   };
23775   static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
23776   static_assert( std::is_standard_layout<CommandBufferAllocateInfo>::value, "struct wrapper is not a standard layout!" );
23777 
23778   namespace layout
23779   {
23780     struct CommandBufferInheritanceInfo
23781     {
23782     protected:
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceInfo23783       CommandBufferInheritanceInfo( vk::RenderPass renderPass_ = vk::RenderPass(),
23784                                     uint32_t subpass_ = 0,
23785                                     vk::Framebuffer framebuffer_ = vk::Framebuffer(),
23786                                     vk::Bool32 occlusionQueryEnable_ = 0,
23787                                     vk::QueryControlFlags queryFlags_ = vk::QueryControlFlags(),
23788                                     vk::QueryPipelineStatisticFlags pipelineStatistics_ = vk::QueryPipelineStatisticFlags() )
23789         : renderPass( renderPass_ )
23790         , subpass( subpass_ )
23791         , framebuffer( framebuffer_ )
23792         , occlusionQueryEnable( occlusionQueryEnable_ )
23793         , queryFlags( queryFlags_ )
23794         , pipelineStatistics( pipelineStatistics_ )
23795       {}
23796 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceInfo23797       CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs )
23798       {
23799         *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this) = rhs;
23800       }
23801 
operator =VULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceInfo23802       CommandBufferInheritanceInfo& operator=( VkCommandBufferInheritanceInfo const & rhs )
23803       {
23804         *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this) = rhs;
23805         return *this;
23806       }
23807 
23808     public:
23809       vk::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
23810       const void* pNext = nullptr;
23811       vk::RenderPass renderPass;
23812       uint32_t subpass;
23813       vk::Framebuffer framebuffer;
23814       vk::Bool32 occlusionQueryEnable;
23815       vk::QueryControlFlags queryFlags;
23816       vk::QueryPipelineStatisticFlags pipelineStatistics;
23817     };
23818     static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "layout struct and wrapper have different size!" );
23819   }
23820 
23821   struct CommandBufferInheritanceInfo : public layout::CommandBufferInheritanceInfo
23822   {
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23823     CommandBufferInheritanceInfo( vk::RenderPass renderPass_ = vk::RenderPass(),
23824                                   uint32_t subpass_ = 0,
23825                                   vk::Framebuffer framebuffer_ = vk::Framebuffer(),
23826                                   vk::Bool32 occlusionQueryEnable_ = 0,
23827                                   vk::QueryControlFlags queryFlags_ = vk::QueryControlFlags(),
23828                                   vk::QueryPipelineStatisticFlags pipelineStatistics_ = vk::QueryPipelineStatisticFlags() )
23829       : layout::CommandBufferInheritanceInfo( renderPass_, subpass_, framebuffer_, occlusionQueryEnable_, queryFlags_, pipelineStatistics_ )
23830     {}
23831 
CommandBufferInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23832     CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs )
23833       : layout::CommandBufferInheritanceInfo( rhs )
23834     {}
23835 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23836     CommandBufferInheritanceInfo& operator=( VkCommandBufferInheritanceInfo const & rhs )
23837     {
23838       *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this) = rhs;
23839       return *this;
23840     }
23841 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23842     CommandBufferInheritanceInfo & setPNext( const void* pNext_ )
23843     {
23844       pNext = pNext_;
23845       return *this;
23846     }
23847 
setRenderPassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23848     CommandBufferInheritanceInfo & setRenderPass( vk::RenderPass renderPass_ )
23849     {
23850       renderPass = renderPass_;
23851       return *this;
23852     }
23853 
setSubpassVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23854     CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ )
23855     {
23856       subpass = subpass_;
23857       return *this;
23858     }
23859 
setFramebufferVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23860     CommandBufferInheritanceInfo & setFramebuffer( vk::Framebuffer framebuffer_ )
23861     {
23862       framebuffer = framebuffer_;
23863       return *this;
23864     }
23865 
setOcclusionQueryEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23866     CommandBufferInheritanceInfo & setOcclusionQueryEnable( vk::Bool32 occlusionQueryEnable_ )
23867     {
23868       occlusionQueryEnable = occlusionQueryEnable_;
23869       return *this;
23870     }
23871 
setQueryFlagsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23872     CommandBufferInheritanceInfo & setQueryFlags( vk::QueryControlFlags queryFlags_ )
23873     {
23874       queryFlags = queryFlags_;
23875       return *this;
23876     }
23877 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23878     CommandBufferInheritanceInfo & setPipelineStatistics( vk::QueryPipelineStatisticFlags pipelineStatistics_ )
23879     {
23880       pipelineStatistics = pipelineStatistics_;
23881       return *this;
23882     }
23883 
operator VkCommandBufferInheritanceInfo const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23884     operator VkCommandBufferInheritanceInfo const&() const
23885     {
23886       return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
23887     }
23888 
operator VkCommandBufferInheritanceInfo&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23889     operator VkCommandBufferInheritanceInfo &()
23890     {
23891       return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
23892     }
23893 
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23894     bool operator==( CommandBufferInheritanceInfo const& rhs ) const
23895     {
23896       return ( sType == rhs.sType )
23897           && ( pNext == rhs.pNext )
23898           && ( renderPass == rhs.renderPass )
23899           && ( subpass == rhs.subpass )
23900           && ( framebuffer == rhs.framebuffer )
23901           && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
23902           && ( queryFlags == rhs.queryFlags )
23903           && ( pipelineStatistics == rhs.pipelineStatistics );
23904     }
23905 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo23906     bool operator!=( CommandBufferInheritanceInfo const& rhs ) const
23907     {
23908       return !operator==( rhs );
23909     }
23910 
23911   private:
23912     using layout::CommandBufferInheritanceInfo::sType;
23913   };
23914   static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
23915   static_assert( std::is_standard_layout<CommandBufferInheritanceInfo>::value, "struct wrapper is not a standard layout!" );
23916 
23917   namespace layout
23918   {
23919     struct CommandBufferBeginInfo
23920     {
23921     protected:
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferBeginInfo23922       CommandBufferBeginInfo( vk::CommandBufferUsageFlags flags_ = vk::CommandBufferUsageFlags(),
23923                               const vk::CommandBufferInheritanceInfo* pInheritanceInfo_ = nullptr )
23924         : flags( flags_ )
23925         , pInheritanceInfo( pInheritanceInfo_ )
23926       {}
23927 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::layout::CommandBufferBeginInfo23928       CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs )
23929       {
23930         *reinterpret_cast<VkCommandBufferBeginInfo*>(this) = rhs;
23931       }
23932 
operator =VULKAN_HPP_NAMESPACE::layout::CommandBufferBeginInfo23933       CommandBufferBeginInfo& operator=( VkCommandBufferBeginInfo const & rhs )
23934       {
23935         *reinterpret_cast<VkCommandBufferBeginInfo*>(this) = rhs;
23936         return *this;
23937       }
23938 
23939     public:
23940       vk::StructureType sType = StructureType::eCommandBufferBeginInfo;
23941       const void* pNext = nullptr;
23942       vk::CommandBufferUsageFlags flags;
23943       const vk::CommandBufferInheritanceInfo* pInheritanceInfo;
23944     };
23945     static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "layout struct and wrapper have different size!" );
23946   }
23947 
23948   struct CommandBufferBeginInfo : public layout::CommandBufferBeginInfo
23949   {
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23950     CommandBufferBeginInfo( vk::CommandBufferUsageFlags flags_ = vk::CommandBufferUsageFlags(),
23951                             const vk::CommandBufferInheritanceInfo* pInheritanceInfo_ = nullptr )
23952       : layout::CommandBufferBeginInfo( flags_, pInheritanceInfo_ )
23953     {}
23954 
CommandBufferBeginInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23955     CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs )
23956       : layout::CommandBufferBeginInfo( rhs )
23957     {}
23958 
operator =VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23959     CommandBufferBeginInfo& operator=( VkCommandBufferBeginInfo const & rhs )
23960     {
23961       *reinterpret_cast<VkCommandBufferBeginInfo*>(this) = rhs;
23962       return *this;
23963     }
23964 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23965     CommandBufferBeginInfo & setPNext( const void* pNext_ )
23966     {
23967       pNext = pNext_;
23968       return *this;
23969     }
23970 
setFlagsVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23971     CommandBufferBeginInfo & setFlags( vk::CommandBufferUsageFlags flags_ )
23972     {
23973       flags = flags_;
23974       return *this;
23975     }
23976 
setPInheritanceInfoVULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23977     CommandBufferBeginInfo & setPInheritanceInfo( const vk::CommandBufferInheritanceInfo* pInheritanceInfo_ )
23978     {
23979       pInheritanceInfo = pInheritanceInfo_;
23980       return *this;
23981     }
23982 
operator VkCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23983     operator VkCommandBufferBeginInfo const&() const
23984     {
23985       return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
23986     }
23987 
operator VkCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23988     operator VkCommandBufferBeginInfo &()
23989     {
23990       return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
23991     }
23992 
operator ==VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo23993     bool operator==( CommandBufferBeginInfo const& rhs ) const
23994     {
23995       return ( sType == rhs.sType )
23996           && ( pNext == rhs.pNext )
23997           && ( flags == rhs.flags )
23998           && ( pInheritanceInfo == rhs.pInheritanceInfo );
23999     }
24000 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo24001     bool operator!=( CommandBufferBeginInfo const& rhs ) const
24002     {
24003       return !operator==( rhs );
24004     }
24005 
24006   private:
24007     using layout::CommandBufferBeginInfo::sType;
24008   };
24009   static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
24010   static_assert( std::is_standard_layout<CommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
24011 
24012   namespace layout
24013   {
24014     struct CommandBufferInheritanceConditionalRenderingInfoEXT
24015     {
24016     protected:
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceConditionalRenderingInfoEXT24017       CommandBufferInheritanceConditionalRenderingInfoEXT( vk::Bool32 conditionalRenderingEnable_ = 0 )
24018         : conditionalRenderingEnable( conditionalRenderingEnable_ )
24019       {}
24020 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceConditionalRenderingInfoEXT24021       CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
24022       {
24023         *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this) = rhs;
24024       }
24025 
operator =VULKAN_HPP_NAMESPACE::layout::CommandBufferInheritanceConditionalRenderingInfoEXT24026       CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
24027       {
24028         *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this) = rhs;
24029         return *this;
24030       }
24031 
24032     public:
24033       vk::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
24034       const void* pNext = nullptr;
24035       vk::Bool32 conditionalRenderingEnable;
24036     };
24037     static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "layout struct and wrapper have different size!" );
24038   }
24039 
24040   struct CommandBufferInheritanceConditionalRenderingInfoEXT : public layout::CommandBufferInheritanceConditionalRenderingInfoEXT
24041   {
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24042     CommandBufferInheritanceConditionalRenderingInfoEXT( vk::Bool32 conditionalRenderingEnable_ = 0 )
24043       : layout::CommandBufferInheritanceConditionalRenderingInfoEXT( conditionalRenderingEnable_ )
24044     {}
24045 
CommandBufferInheritanceConditionalRenderingInfoEXTVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24046     CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
24047       : layout::CommandBufferInheritanceConditionalRenderingInfoEXT( rhs )
24048     {}
24049 
operator =VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24050     CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
24051     {
24052       *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this) = rhs;
24053       return *this;
24054     }
24055 
setPNextVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24056     CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ )
24057     {
24058       pNext = pNext_;
24059       return *this;
24060     }
24061 
setConditionalRenderingEnableVULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24062     CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( vk::Bool32 conditionalRenderingEnable_ )
24063     {
24064       conditionalRenderingEnable = conditionalRenderingEnable_;
24065       return *this;
24066     }
24067 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24068     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const
24069     {
24070       return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24071     }
24072 
operator VkCommandBufferInheritanceConditionalRenderingInfoEXT&VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24073     operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &()
24074     {
24075       return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
24076     }
24077 
operator ==VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24078     bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const
24079     {
24080       return ( sType == rhs.sType )
24081           && ( pNext == rhs.pNext )
24082           && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
24083     }
24084 
operator !=VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT24085     bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const
24086     {
24087       return !operator==( rhs );
24088     }
24089 
24090   private:
24091     using layout::CommandBufferInheritanceConditionalRenderingInfoEXT::sType;
24092   };
24093   static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
24094   static_assert( std::is_standard_layout<CommandBufferInheritanceConditionalRenderingInfoEXT>::value, "struct wrapper is not a standard layout!" );
24095 
24096   namespace layout
24097   {
24098     struct CommandPoolCreateInfo
24099     {
24100     protected:
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::CommandPoolCreateInfo24101       CommandPoolCreateInfo( vk::CommandPoolCreateFlags flags_ = vk::CommandPoolCreateFlags(),
24102                              uint32_t queueFamilyIndex_ = 0 )
24103         : flags( flags_ )
24104         , queueFamilyIndex( queueFamilyIndex_ )
24105       {}
24106 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::CommandPoolCreateInfo24107       CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs )
24108       {
24109         *reinterpret_cast<VkCommandPoolCreateInfo*>(this) = rhs;
24110       }
24111 
operator =VULKAN_HPP_NAMESPACE::layout::CommandPoolCreateInfo24112       CommandPoolCreateInfo& operator=( VkCommandPoolCreateInfo const & rhs )
24113       {
24114         *reinterpret_cast<VkCommandPoolCreateInfo*>(this) = rhs;
24115         return *this;
24116       }
24117 
24118     public:
24119       vk::StructureType sType = StructureType::eCommandPoolCreateInfo;
24120       const void* pNext = nullptr;
24121       vk::CommandPoolCreateFlags flags;
24122       uint32_t queueFamilyIndex;
24123     };
24124     static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "layout struct and wrapper have different size!" );
24125   }
24126 
24127   struct CommandPoolCreateInfo : public layout::CommandPoolCreateInfo
24128   {
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24129     CommandPoolCreateInfo( vk::CommandPoolCreateFlags flags_ = vk::CommandPoolCreateFlags(),
24130                            uint32_t queueFamilyIndex_ = 0 )
24131       : layout::CommandPoolCreateInfo( flags_, queueFamilyIndex_ )
24132     {}
24133 
CommandPoolCreateInfoVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24134     CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs )
24135       : layout::CommandPoolCreateInfo( rhs )
24136     {}
24137 
operator =VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24138     CommandPoolCreateInfo& operator=( VkCommandPoolCreateInfo const & rhs )
24139     {
24140       *reinterpret_cast<VkCommandPoolCreateInfo*>(this) = rhs;
24141       return *this;
24142     }
24143 
setPNextVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24144     CommandPoolCreateInfo & setPNext( const void* pNext_ )
24145     {
24146       pNext = pNext_;
24147       return *this;
24148     }
24149 
setFlagsVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24150     CommandPoolCreateInfo & setFlags( vk::CommandPoolCreateFlags flags_ )
24151     {
24152       flags = flags_;
24153       return *this;
24154     }
24155 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24156     CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
24157     {
24158       queueFamilyIndex = queueFamilyIndex_;
24159       return *this;
24160     }
24161 
operator VkCommandPoolCreateInfo const&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24162     operator VkCommandPoolCreateInfo const&() const
24163     {
24164       return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
24165     }
24166 
operator VkCommandPoolCreateInfo&VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24167     operator VkCommandPoolCreateInfo &()
24168     {
24169       return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
24170     }
24171 
operator ==VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24172     bool operator==( CommandPoolCreateInfo const& rhs ) const
24173     {
24174       return ( sType == rhs.sType )
24175           && ( pNext == rhs.pNext )
24176           && ( flags == rhs.flags )
24177           && ( queueFamilyIndex == rhs.queueFamilyIndex );
24178     }
24179 
operator !=VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo24180     bool operator!=( CommandPoolCreateInfo const& rhs ) const
24181     {
24182       return !operator==( rhs );
24183     }
24184 
24185   private:
24186     using layout::CommandPoolCreateInfo::sType;
24187   };
24188   static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
24189   static_assert( std::is_standard_layout<CommandPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
24190 
24191   struct SpecializationMapEntry
24192   {
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24193     SpecializationMapEntry( uint32_t constantID_ = 0,
24194                             uint32_t offset_ = 0,
24195                             size_t size_ = 0 )
24196         : constantID( constantID_ )
24197         , offset( offset_ )
24198         , size( size_ )
24199     {}
24200 
SpecializationMapEntryVULKAN_HPP_NAMESPACE::SpecializationMapEntry24201     SpecializationMapEntry( VkSpecializationMapEntry const & rhs )
24202     {
24203       *reinterpret_cast<VkSpecializationMapEntry*>(this) = rhs;
24204     }
24205 
operator =VULKAN_HPP_NAMESPACE::SpecializationMapEntry24206     SpecializationMapEntry& operator=( VkSpecializationMapEntry const & rhs )
24207     {
24208       *reinterpret_cast<VkSpecializationMapEntry*>(this) = rhs;
24209       return *this;
24210     }
24211 
setConstantIDVULKAN_HPP_NAMESPACE::SpecializationMapEntry24212     SpecializationMapEntry & setConstantID( uint32_t constantID_ )
24213     {
24214       constantID = constantID_;
24215       return *this;
24216     }
24217 
setOffsetVULKAN_HPP_NAMESPACE::SpecializationMapEntry24218     SpecializationMapEntry & setOffset( uint32_t offset_ )
24219     {
24220       offset = offset_;
24221       return *this;
24222     }
24223 
setSizeVULKAN_HPP_NAMESPACE::SpecializationMapEntry24224     SpecializationMapEntry & setSize( size_t size_ )
24225     {
24226       size = size_;
24227       return *this;
24228     }
24229 
operator VkSpecializationMapEntry const&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24230     operator VkSpecializationMapEntry const&() const
24231     {
24232       return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
24233     }
24234 
operator VkSpecializationMapEntry&VULKAN_HPP_NAMESPACE::SpecializationMapEntry24235     operator VkSpecializationMapEntry &()
24236     {
24237       return *reinterpret_cast<VkSpecializationMapEntry*>( this );
24238     }
24239 
operator ==VULKAN_HPP_NAMESPACE::SpecializationMapEntry24240     bool operator==( SpecializationMapEntry const& rhs ) const
24241     {
24242       return ( constantID == rhs.constantID )
24243           && ( offset == rhs.offset )
24244           && ( size == rhs.size );
24245     }
24246 
operator !=VULKAN_HPP_NAMESPACE::SpecializationMapEntry24247     bool operator!=( SpecializationMapEntry const& rhs ) const
24248     {
24249       return !operator==( rhs );
24250     }
24251 
24252   public:
24253     uint32_t constantID;
24254     uint32_t offset;
24255     size_t size;
24256   };
24257   static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
24258   static_assert( std::is_standard_layout<SpecializationMapEntry>::value, "struct wrapper is not a standard layout!" );
24259 
24260   struct SpecializationInfo
24261   {
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24262     SpecializationInfo( uint32_t mapEntryCount_ = 0,
24263                         const vk::SpecializationMapEntry* pMapEntries_ = nullptr,
24264                         size_t dataSize_ = 0,
24265                         const void* pData_ = nullptr )
24266         : mapEntryCount( mapEntryCount_ )
24267         , pMapEntries( pMapEntries_ )
24268         , dataSize( dataSize_ )
24269         , pData( pData_ )
24270     {}
24271 
SpecializationInfoVULKAN_HPP_NAMESPACE::SpecializationInfo24272     SpecializationInfo( VkSpecializationInfo const & rhs )
24273     {
24274       *reinterpret_cast<VkSpecializationInfo*>(this) = rhs;
24275     }
24276 
operator =VULKAN_HPP_NAMESPACE::SpecializationInfo24277     SpecializationInfo& operator=( VkSpecializationInfo const & rhs )
24278     {
24279       *reinterpret_cast<VkSpecializationInfo*>(this) = rhs;
24280       return *this;
24281     }
24282 
setMapEntryCountVULKAN_HPP_NAMESPACE::SpecializationInfo24283     SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ )
24284     {
24285       mapEntryCount = mapEntryCount_;
24286       return *this;
24287     }
24288 
setPMapEntriesVULKAN_HPP_NAMESPACE::SpecializationInfo24289     SpecializationInfo & setPMapEntries( const vk::SpecializationMapEntry* pMapEntries_ )
24290     {
24291       pMapEntries = pMapEntries_;
24292       return *this;
24293     }
24294 
setDataSizeVULKAN_HPP_NAMESPACE::SpecializationInfo24295     SpecializationInfo & setDataSize( size_t dataSize_ )
24296     {
24297       dataSize = dataSize_;
24298       return *this;
24299     }
24300 
setPDataVULKAN_HPP_NAMESPACE::SpecializationInfo24301     SpecializationInfo & setPData( const void* pData_ )
24302     {
24303       pData = pData_;
24304       return *this;
24305     }
24306 
operator VkSpecializationInfo const&VULKAN_HPP_NAMESPACE::SpecializationInfo24307     operator VkSpecializationInfo const&() const
24308     {
24309       return *reinterpret_cast<const VkSpecializationInfo*>( this );
24310     }
24311 
operator VkSpecializationInfo&VULKAN_HPP_NAMESPACE::SpecializationInfo24312     operator VkSpecializationInfo &()
24313     {
24314       return *reinterpret_cast<VkSpecializationInfo*>( this );
24315     }
24316 
operator ==VULKAN_HPP_NAMESPACE::SpecializationInfo24317     bool operator==( SpecializationInfo const& rhs ) const
24318     {
24319       return ( mapEntryCount == rhs.mapEntryCount )
24320           && ( pMapEntries == rhs.pMapEntries )
24321           && ( dataSize == rhs.dataSize )
24322           && ( pData == rhs.pData );
24323     }
24324 
operator !=VULKAN_HPP_NAMESPACE::SpecializationInfo24325     bool operator!=( SpecializationInfo const& rhs ) const
24326     {
24327       return !operator==( rhs );
24328     }
24329 
24330   public:
24331     uint32_t mapEntryCount;
24332     const vk::SpecializationMapEntry* pMapEntries;
24333     size_t dataSize;
24334     const void* pData;
24335   };
24336   static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
24337   static_assert( std::is_standard_layout<SpecializationInfo>::value, "struct wrapper is not a standard layout!" );
24338 
24339   namespace layout
24340   {
24341     struct PipelineShaderStageCreateInfo
24342     {
24343     protected:
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineShaderStageCreateInfo24344       PipelineShaderStageCreateInfo( vk::PipelineShaderStageCreateFlags flags_ = vk::PipelineShaderStageCreateFlags(),
24345                                      vk::ShaderStageFlagBits stage_ = vk::ShaderStageFlagBits::eVertex,
24346                                      vk::ShaderModule module_ = vk::ShaderModule(),
24347                                      const char* pName_ = nullptr,
24348                                      const vk::SpecializationInfo* pSpecializationInfo_ = nullptr )
24349         : flags( flags_ )
24350         , stage( stage_ )
24351         , module( module_ )
24352         , pName( pName_ )
24353         , pSpecializationInfo( pSpecializationInfo_ )
24354       {}
24355 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineShaderStageCreateInfo24356       PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs )
24357       {
24358         *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this) = rhs;
24359       }
24360 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineShaderStageCreateInfo24361       PipelineShaderStageCreateInfo& operator=( VkPipelineShaderStageCreateInfo const & rhs )
24362       {
24363         *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this) = rhs;
24364         return *this;
24365       }
24366 
24367     public:
24368       vk::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
24369       const void* pNext = nullptr;
24370       vk::PipelineShaderStageCreateFlags flags;
24371       vk::ShaderStageFlagBits stage;
24372       vk::ShaderModule module;
24373       const char* pName;
24374       const vk::SpecializationInfo* pSpecializationInfo;
24375     };
24376     static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "layout struct and wrapper have different size!" );
24377   }
24378 
24379   struct PipelineShaderStageCreateInfo : public layout::PipelineShaderStageCreateInfo
24380   {
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24381     PipelineShaderStageCreateInfo( vk::PipelineShaderStageCreateFlags flags_ = vk::PipelineShaderStageCreateFlags(),
24382                                    vk::ShaderStageFlagBits stage_ = vk::ShaderStageFlagBits::eVertex,
24383                                    vk::ShaderModule module_ = vk::ShaderModule(),
24384                                    const char* pName_ = nullptr,
24385                                    const vk::SpecializationInfo* pSpecializationInfo_ = nullptr )
24386       : layout::PipelineShaderStageCreateInfo( flags_, stage_, module_, pName_, pSpecializationInfo_ )
24387     {}
24388 
PipelineShaderStageCreateInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24389     PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs )
24390       : layout::PipelineShaderStageCreateInfo( rhs )
24391     {}
24392 
operator =VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24393     PipelineShaderStageCreateInfo& operator=( VkPipelineShaderStageCreateInfo const & rhs )
24394     {
24395       *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this) = rhs;
24396       return *this;
24397     }
24398 
setPNextVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24399     PipelineShaderStageCreateInfo & setPNext( const void* pNext_ )
24400     {
24401       pNext = pNext_;
24402       return *this;
24403     }
24404 
setFlagsVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24405     PipelineShaderStageCreateInfo & setFlags( vk::PipelineShaderStageCreateFlags flags_ )
24406     {
24407       flags = flags_;
24408       return *this;
24409     }
24410 
setStageVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24411     PipelineShaderStageCreateInfo & setStage( vk::ShaderStageFlagBits stage_ )
24412     {
24413       stage = stage_;
24414       return *this;
24415     }
24416 
setModuleVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24417     PipelineShaderStageCreateInfo & setModule( vk::ShaderModule module_ )
24418     {
24419       module = module_;
24420       return *this;
24421     }
24422 
setPNameVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24423     PipelineShaderStageCreateInfo & setPName( const char* pName_ )
24424     {
24425       pName = pName_;
24426       return *this;
24427     }
24428 
setPSpecializationInfoVULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24429     PipelineShaderStageCreateInfo & setPSpecializationInfo( const vk::SpecializationInfo* pSpecializationInfo_ )
24430     {
24431       pSpecializationInfo = pSpecializationInfo_;
24432       return *this;
24433     }
24434 
operator VkPipelineShaderStageCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24435     operator VkPipelineShaderStageCreateInfo const&() const
24436     {
24437       return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
24438     }
24439 
operator VkPipelineShaderStageCreateInfo&VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24440     operator VkPipelineShaderStageCreateInfo &()
24441     {
24442       return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
24443     }
24444 
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24445     bool operator==( PipelineShaderStageCreateInfo const& rhs ) const
24446     {
24447       return ( sType == rhs.sType )
24448           && ( pNext == rhs.pNext )
24449           && ( flags == rhs.flags )
24450           && ( stage == rhs.stage )
24451           && ( module == rhs.module )
24452           && ( pName == rhs.pName )
24453           && ( pSpecializationInfo == rhs.pSpecializationInfo );
24454     }
24455 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo24456     bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const
24457     {
24458       return !operator==( rhs );
24459     }
24460 
24461   private:
24462     using layout::PipelineShaderStageCreateInfo::sType;
24463   };
24464   static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
24465   static_assert( std::is_standard_layout<PipelineShaderStageCreateInfo>::value, "struct wrapper is not a standard layout!" );
24466 
24467   namespace layout
24468   {
24469     struct ComputePipelineCreateInfo
24470     {
24471     protected:
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::layout::ComputePipelineCreateInfo24472       ComputePipelineCreateInfo( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
24473                                  vk::PipelineShaderStageCreateInfo stage_ = vk::PipelineShaderStageCreateInfo(),
24474                                  vk::PipelineLayout layout_ = vk::PipelineLayout(),
24475                                  vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
24476                                  int32_t basePipelineIndex_ = 0 )
24477         : flags( flags_ )
24478         , stage( stage_ )
24479         , layout( layout_ )
24480         , basePipelineHandle( basePipelineHandle_ )
24481         , basePipelineIndex( basePipelineIndex_ )
24482       {}
24483 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::layout::ComputePipelineCreateInfo24484       ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs )
24485       {
24486         *reinterpret_cast<VkComputePipelineCreateInfo*>(this) = rhs;
24487       }
24488 
operator =VULKAN_HPP_NAMESPACE::layout::ComputePipelineCreateInfo24489       ComputePipelineCreateInfo& operator=( VkComputePipelineCreateInfo const & rhs )
24490       {
24491         *reinterpret_cast<VkComputePipelineCreateInfo*>(this) = rhs;
24492         return *this;
24493       }
24494 
24495     public:
24496       vk::StructureType sType = StructureType::eComputePipelineCreateInfo;
24497       const void* pNext = nullptr;
24498       vk::PipelineCreateFlags flags;
24499       vk::PipelineShaderStageCreateInfo stage;
24500       vk::PipelineLayout layout;
24501       vk::Pipeline basePipelineHandle;
24502       int32_t basePipelineIndex;
24503     };
24504     static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "layout struct and wrapper have different size!" );
24505   }
24506 
24507   struct ComputePipelineCreateInfo : public layout::ComputePipelineCreateInfo
24508   {
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24509     ComputePipelineCreateInfo( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
24510                                vk::PipelineShaderStageCreateInfo stage_ = vk::PipelineShaderStageCreateInfo(),
24511                                vk::PipelineLayout layout_ = vk::PipelineLayout(),
24512                                vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
24513                                int32_t basePipelineIndex_ = 0 )
24514       : layout::ComputePipelineCreateInfo( flags_, stage_, layout_, basePipelineHandle_, basePipelineIndex_ )
24515     {}
24516 
ComputePipelineCreateInfoVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24517     ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs )
24518       : layout::ComputePipelineCreateInfo( rhs )
24519     {}
24520 
operator =VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24521     ComputePipelineCreateInfo& operator=( VkComputePipelineCreateInfo const & rhs )
24522     {
24523       *reinterpret_cast<VkComputePipelineCreateInfo*>(this) = rhs;
24524       return *this;
24525     }
24526 
setPNextVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24527     ComputePipelineCreateInfo & setPNext( const void* pNext_ )
24528     {
24529       pNext = pNext_;
24530       return *this;
24531     }
24532 
setFlagsVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24533     ComputePipelineCreateInfo & setFlags( vk::PipelineCreateFlags flags_ )
24534     {
24535       flags = flags_;
24536       return *this;
24537     }
24538 
setStageVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24539     ComputePipelineCreateInfo & setStage( vk::PipelineShaderStageCreateInfo stage_ )
24540     {
24541       stage = stage_;
24542       return *this;
24543     }
24544 
setLayoutVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24545     ComputePipelineCreateInfo & setLayout( vk::PipelineLayout layout_ )
24546     {
24547       layout = layout_;
24548       return *this;
24549     }
24550 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24551     ComputePipelineCreateInfo & setBasePipelineHandle( vk::Pipeline basePipelineHandle_ )
24552     {
24553       basePipelineHandle = basePipelineHandle_;
24554       return *this;
24555     }
24556 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24557     ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ )
24558     {
24559       basePipelineIndex = basePipelineIndex_;
24560       return *this;
24561     }
24562 
operator VkComputePipelineCreateInfo const&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24563     operator VkComputePipelineCreateInfo const&() const
24564     {
24565       return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
24566     }
24567 
operator VkComputePipelineCreateInfo&VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24568     operator VkComputePipelineCreateInfo &()
24569     {
24570       return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
24571     }
24572 
operator ==VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24573     bool operator==( ComputePipelineCreateInfo const& rhs ) const
24574     {
24575       return ( sType == rhs.sType )
24576           && ( pNext == rhs.pNext )
24577           && ( flags == rhs.flags )
24578           && ( stage == rhs.stage )
24579           && ( layout == rhs.layout )
24580           && ( basePipelineHandle == rhs.basePipelineHandle )
24581           && ( basePipelineIndex == rhs.basePipelineIndex );
24582     }
24583 
operator !=VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo24584     bool operator!=( ComputePipelineCreateInfo const& rhs ) const
24585     {
24586       return !operator==( rhs );
24587     }
24588 
24589   private:
24590     using layout::ComputePipelineCreateInfo::sType;
24591   };
24592   static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
24593   static_assert( std::is_standard_layout<ComputePipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
24594 
24595   namespace layout
24596   {
24597     struct ConditionalRenderingBeginInfoEXT
24598     {
24599     protected:
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::layout::ConditionalRenderingBeginInfoEXT24600       ConditionalRenderingBeginInfoEXT( vk::Buffer buffer_ = vk::Buffer(),
24601                                         vk::DeviceSize offset_ = 0,
24602                                         vk::ConditionalRenderingFlagsEXT flags_ = vk::ConditionalRenderingFlagsEXT() )
24603         : buffer( buffer_ )
24604         , offset( offset_ )
24605         , flags( flags_ )
24606       {}
24607 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::layout::ConditionalRenderingBeginInfoEXT24608       ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs )
24609       {
24610         *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this) = rhs;
24611       }
24612 
operator =VULKAN_HPP_NAMESPACE::layout::ConditionalRenderingBeginInfoEXT24613       ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs )
24614       {
24615         *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this) = rhs;
24616         return *this;
24617       }
24618 
24619     public:
24620       vk::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
24621       const void* pNext = nullptr;
24622       vk::Buffer buffer;
24623       vk::DeviceSize offset;
24624       vk::ConditionalRenderingFlagsEXT flags;
24625     };
24626     static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "layout struct and wrapper have different size!" );
24627   }
24628 
24629   struct ConditionalRenderingBeginInfoEXT : public layout::ConditionalRenderingBeginInfoEXT
24630   {
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24631     ConditionalRenderingBeginInfoEXT( vk::Buffer buffer_ = vk::Buffer(),
24632                                       vk::DeviceSize offset_ = 0,
24633                                       vk::ConditionalRenderingFlagsEXT flags_ = vk::ConditionalRenderingFlagsEXT() )
24634       : layout::ConditionalRenderingBeginInfoEXT( buffer_, offset_, flags_ )
24635     {}
24636 
ConditionalRenderingBeginInfoEXTVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24637     ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs )
24638       : layout::ConditionalRenderingBeginInfoEXT( rhs )
24639     {}
24640 
operator =VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24641     ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs )
24642     {
24643       *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this) = rhs;
24644       return *this;
24645     }
24646 
setPNextVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24647     ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ )
24648     {
24649       pNext = pNext_;
24650       return *this;
24651     }
24652 
setBufferVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24653     ConditionalRenderingBeginInfoEXT & setBuffer( vk::Buffer buffer_ )
24654     {
24655       buffer = buffer_;
24656       return *this;
24657     }
24658 
setOffsetVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24659     ConditionalRenderingBeginInfoEXT & setOffset( vk::DeviceSize offset_ )
24660     {
24661       offset = offset_;
24662       return *this;
24663     }
24664 
setFlagsVULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24665     ConditionalRenderingBeginInfoEXT & setFlags( vk::ConditionalRenderingFlagsEXT flags_ )
24666     {
24667       flags = flags_;
24668       return *this;
24669     }
24670 
operator VkConditionalRenderingBeginInfoEXT const&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24671     operator VkConditionalRenderingBeginInfoEXT const&() const
24672     {
24673       return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
24674     }
24675 
operator VkConditionalRenderingBeginInfoEXT&VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24676     operator VkConditionalRenderingBeginInfoEXT &()
24677     {
24678       return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
24679     }
24680 
operator ==VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24681     bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const
24682     {
24683       return ( sType == rhs.sType )
24684           && ( pNext == rhs.pNext )
24685           && ( buffer == rhs.buffer )
24686           && ( offset == rhs.offset )
24687           && ( flags == rhs.flags );
24688     }
24689 
operator !=VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT24690     bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const
24691     {
24692       return !operator==( rhs );
24693     }
24694 
24695   private:
24696     using layout::ConditionalRenderingBeginInfoEXT::sType;
24697   };
24698   static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
24699   static_assert( std::is_standard_layout<ConditionalRenderingBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
24700 
24701   struct ConformanceVersionKHR
24702   {
ConformanceVersionKHRVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24703     ConformanceVersionKHR( uint8_t major_ = 0,
24704                            uint8_t minor_ = 0,
24705                            uint8_t subminor_ = 0,
24706                            uint8_t patch_ = 0 )
24707         : major( major_ )
24708         , minor( minor_ )
24709         , subminor( subminor_ )
24710         , patch( patch_ )
24711     {}
24712 
ConformanceVersionKHRVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24713     ConformanceVersionKHR( VkConformanceVersionKHR const & rhs )
24714     {
24715       *reinterpret_cast<VkConformanceVersionKHR*>(this) = rhs;
24716     }
24717 
operator =VULKAN_HPP_NAMESPACE::ConformanceVersionKHR24718     ConformanceVersionKHR& operator=( VkConformanceVersionKHR const & rhs )
24719     {
24720       *reinterpret_cast<VkConformanceVersionKHR*>(this) = rhs;
24721       return *this;
24722     }
24723 
setMajorVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24724     ConformanceVersionKHR & setMajor( uint8_t major_ )
24725     {
24726       major = major_;
24727       return *this;
24728     }
24729 
setMinorVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24730     ConformanceVersionKHR & setMinor( uint8_t minor_ )
24731     {
24732       minor = minor_;
24733       return *this;
24734     }
24735 
setSubminorVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24736     ConformanceVersionKHR & setSubminor( uint8_t subminor_ )
24737     {
24738       subminor = subminor_;
24739       return *this;
24740     }
24741 
setPatchVULKAN_HPP_NAMESPACE::ConformanceVersionKHR24742     ConformanceVersionKHR & setPatch( uint8_t patch_ )
24743     {
24744       patch = patch_;
24745       return *this;
24746     }
24747 
operator VkConformanceVersionKHR const&VULKAN_HPP_NAMESPACE::ConformanceVersionKHR24748     operator VkConformanceVersionKHR const&() const
24749     {
24750       return *reinterpret_cast<const VkConformanceVersionKHR*>( this );
24751     }
24752 
operator VkConformanceVersionKHR&VULKAN_HPP_NAMESPACE::ConformanceVersionKHR24753     operator VkConformanceVersionKHR &()
24754     {
24755       return *reinterpret_cast<VkConformanceVersionKHR*>( this );
24756     }
24757 
operator ==VULKAN_HPP_NAMESPACE::ConformanceVersionKHR24758     bool operator==( ConformanceVersionKHR const& rhs ) const
24759     {
24760       return ( major == rhs.major )
24761           && ( minor == rhs.minor )
24762           && ( subminor == rhs.subminor )
24763           && ( patch == rhs.patch );
24764     }
24765 
operator !=VULKAN_HPP_NAMESPACE::ConformanceVersionKHR24766     bool operator!=( ConformanceVersionKHR const& rhs ) const
24767     {
24768       return !operator==( rhs );
24769     }
24770 
24771   public:
24772     uint8_t major;
24773     uint8_t minor;
24774     uint8_t subminor;
24775     uint8_t patch;
24776   };
24777   static_assert( sizeof( ConformanceVersionKHR ) == sizeof( VkConformanceVersionKHR ), "struct and wrapper have different size!" );
24778   static_assert( std::is_standard_layout<ConformanceVersionKHR>::value, "struct wrapper is not a standard layout!" );
24779 
24780   namespace layout
24781   {
24782     struct CooperativeMatrixPropertiesNV
24783     {
24784     protected:
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::layout::CooperativeMatrixPropertiesNV24785       CooperativeMatrixPropertiesNV( uint32_t MSize_ = 0,
24786                                      uint32_t NSize_ = 0,
24787                                      uint32_t KSize_ = 0,
24788                                      vk::ComponentTypeNV AType_ = vk::ComponentTypeNV::eFloat16,
24789                                      vk::ComponentTypeNV BType_ = vk::ComponentTypeNV::eFloat16,
24790                                      vk::ComponentTypeNV CType_ = vk::ComponentTypeNV::eFloat16,
24791                                      vk::ComponentTypeNV DType_ = vk::ComponentTypeNV::eFloat16,
24792                                      vk::ScopeNV scope_ = vk::ScopeNV::eDevice )
24793         : MSize( MSize_ )
24794         , NSize( NSize_ )
24795         , KSize( KSize_ )
24796         , AType( AType_ )
24797         , BType( BType_ )
24798         , CType( CType_ )
24799         , DType( DType_ )
24800         , scope( scope_ )
24801       {}
24802 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::layout::CooperativeMatrixPropertiesNV24803       CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs )
24804       {
24805         *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>(this) = rhs;
24806       }
24807 
operator =VULKAN_HPP_NAMESPACE::layout::CooperativeMatrixPropertiesNV24808       CooperativeMatrixPropertiesNV& operator=( VkCooperativeMatrixPropertiesNV const & rhs )
24809       {
24810         *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>(this) = rhs;
24811         return *this;
24812       }
24813 
24814     public:
24815       vk::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
24816       void* pNext = nullptr;
24817       uint32_t MSize;
24818       uint32_t NSize;
24819       uint32_t KSize;
24820       vk::ComponentTypeNV AType;
24821       vk::ComponentTypeNV BType;
24822       vk::ComponentTypeNV CType;
24823       vk::ComponentTypeNV DType;
24824       vk::ScopeNV scope;
24825     };
24826     static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "layout struct and wrapper have different size!" );
24827   }
24828 
24829   struct CooperativeMatrixPropertiesNV : public layout::CooperativeMatrixPropertiesNV
24830   {
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24831     CooperativeMatrixPropertiesNV( uint32_t MSize_ = 0,
24832                                    uint32_t NSize_ = 0,
24833                                    uint32_t KSize_ = 0,
24834                                    vk::ComponentTypeNV AType_ = vk::ComponentTypeNV::eFloat16,
24835                                    vk::ComponentTypeNV BType_ = vk::ComponentTypeNV::eFloat16,
24836                                    vk::ComponentTypeNV CType_ = vk::ComponentTypeNV::eFloat16,
24837                                    vk::ComponentTypeNV DType_ = vk::ComponentTypeNV::eFloat16,
24838                                    vk::ScopeNV scope_ = vk::ScopeNV::eDevice )
24839       : layout::CooperativeMatrixPropertiesNV( MSize_, NSize_, KSize_, AType_, BType_, CType_, DType_, scope_ )
24840     {}
24841 
CooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24842     CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs )
24843       : layout::CooperativeMatrixPropertiesNV( rhs )
24844     {}
24845 
operator =VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24846     CooperativeMatrixPropertiesNV& operator=( VkCooperativeMatrixPropertiesNV const & rhs )
24847     {
24848       *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>(this) = rhs;
24849       return *this;
24850     }
24851 
setPNextVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24852     CooperativeMatrixPropertiesNV & setPNext( void* pNext_ )
24853     {
24854       pNext = pNext_;
24855       return *this;
24856     }
24857 
setMSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24858     CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ )
24859     {
24860       MSize = MSize_;
24861       return *this;
24862     }
24863 
setNSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24864     CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ )
24865     {
24866       NSize = NSize_;
24867       return *this;
24868     }
24869 
setKSizeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24870     CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ )
24871     {
24872       KSize = KSize_;
24873       return *this;
24874     }
24875 
setATypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24876     CooperativeMatrixPropertiesNV & setAType( vk::ComponentTypeNV AType_ )
24877     {
24878       AType = AType_;
24879       return *this;
24880     }
24881 
setBTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24882     CooperativeMatrixPropertiesNV & setBType( vk::ComponentTypeNV BType_ )
24883     {
24884       BType = BType_;
24885       return *this;
24886     }
24887 
setCTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24888     CooperativeMatrixPropertiesNV & setCType( vk::ComponentTypeNV CType_ )
24889     {
24890       CType = CType_;
24891       return *this;
24892     }
24893 
setDTypeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24894     CooperativeMatrixPropertiesNV & setDType( vk::ComponentTypeNV DType_ )
24895     {
24896       DType = DType_;
24897       return *this;
24898     }
24899 
setScopeVULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24900     CooperativeMatrixPropertiesNV & setScope( vk::ScopeNV scope_ )
24901     {
24902       scope = scope_;
24903       return *this;
24904     }
24905 
operator VkCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24906     operator VkCooperativeMatrixPropertiesNV const&() const
24907     {
24908       return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
24909     }
24910 
operator VkCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24911     operator VkCooperativeMatrixPropertiesNV &()
24912     {
24913       return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
24914     }
24915 
operator ==VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24916     bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const
24917     {
24918       return ( sType == rhs.sType )
24919           && ( pNext == rhs.pNext )
24920           && ( MSize == rhs.MSize )
24921           && ( NSize == rhs.NSize )
24922           && ( KSize == rhs.KSize )
24923           && ( AType == rhs.AType )
24924           && ( BType == rhs.BType )
24925           && ( CType == rhs.CType )
24926           && ( DType == rhs.DType )
24927           && ( scope == rhs.scope );
24928     }
24929 
operator !=VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV24930     bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const
24931     {
24932       return !operator==( rhs );
24933     }
24934 
24935   private:
24936     using layout::CooperativeMatrixPropertiesNV::sType;
24937   };
24938   static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
24939   static_assert( std::is_standard_layout<CooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
24940 
24941   namespace layout
24942   {
24943     struct CopyDescriptorSet
24944     {
24945     protected:
CopyDescriptorSetVULKAN_HPP_NAMESPACE::layout::CopyDescriptorSet24946       CopyDescriptorSet( vk::DescriptorSet srcSet_ = vk::DescriptorSet(),
24947                          uint32_t srcBinding_ = 0,
24948                          uint32_t srcArrayElement_ = 0,
24949                          vk::DescriptorSet dstSet_ = vk::DescriptorSet(),
24950                          uint32_t dstBinding_ = 0,
24951                          uint32_t dstArrayElement_ = 0,
24952                          uint32_t descriptorCount_ = 0 )
24953         : srcSet( srcSet_ )
24954         , srcBinding( srcBinding_ )
24955         , srcArrayElement( srcArrayElement_ )
24956         , dstSet( dstSet_ )
24957         , dstBinding( dstBinding_ )
24958         , dstArrayElement( dstArrayElement_ )
24959         , descriptorCount( descriptorCount_ )
24960       {}
24961 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::layout::CopyDescriptorSet24962       CopyDescriptorSet( VkCopyDescriptorSet const & rhs )
24963       {
24964         *reinterpret_cast<VkCopyDescriptorSet*>(this) = rhs;
24965       }
24966 
operator =VULKAN_HPP_NAMESPACE::layout::CopyDescriptorSet24967       CopyDescriptorSet& operator=( VkCopyDescriptorSet const & rhs )
24968       {
24969         *reinterpret_cast<VkCopyDescriptorSet*>(this) = rhs;
24970         return *this;
24971       }
24972 
24973     public:
24974       vk::StructureType sType = StructureType::eCopyDescriptorSet;
24975       const void* pNext = nullptr;
24976       vk::DescriptorSet srcSet;
24977       uint32_t srcBinding;
24978       uint32_t srcArrayElement;
24979       vk::DescriptorSet dstSet;
24980       uint32_t dstBinding;
24981       uint32_t dstArrayElement;
24982       uint32_t descriptorCount;
24983     };
24984     static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "layout struct and wrapper have different size!" );
24985   }
24986 
24987   struct CopyDescriptorSet : public layout::CopyDescriptorSet
24988   {
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet24989     CopyDescriptorSet( vk::DescriptorSet srcSet_ = vk::DescriptorSet(),
24990                        uint32_t srcBinding_ = 0,
24991                        uint32_t srcArrayElement_ = 0,
24992                        vk::DescriptorSet dstSet_ = vk::DescriptorSet(),
24993                        uint32_t dstBinding_ = 0,
24994                        uint32_t dstArrayElement_ = 0,
24995                        uint32_t descriptorCount_ = 0 )
24996       : layout::CopyDescriptorSet( srcSet_, srcBinding_, srcArrayElement_, dstSet_, dstBinding_, dstArrayElement_, descriptorCount_ )
24997     {}
24998 
CopyDescriptorSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet24999     CopyDescriptorSet( VkCopyDescriptorSet const & rhs )
25000       : layout::CopyDescriptorSet( rhs )
25001     {}
25002 
operator =VULKAN_HPP_NAMESPACE::CopyDescriptorSet25003     CopyDescriptorSet& operator=( VkCopyDescriptorSet const & rhs )
25004     {
25005       *reinterpret_cast<VkCopyDescriptorSet*>(this) = rhs;
25006       return *this;
25007     }
25008 
setPNextVULKAN_HPP_NAMESPACE::CopyDescriptorSet25009     CopyDescriptorSet & setPNext( const void* pNext_ )
25010     {
25011       pNext = pNext_;
25012       return *this;
25013     }
25014 
setSrcSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet25015     CopyDescriptorSet & setSrcSet( vk::DescriptorSet srcSet_ )
25016     {
25017       srcSet = srcSet_;
25018       return *this;
25019     }
25020 
setSrcBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet25021     CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ )
25022     {
25023       srcBinding = srcBinding_;
25024       return *this;
25025     }
25026 
setSrcArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet25027     CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ )
25028     {
25029       srcArrayElement = srcArrayElement_;
25030       return *this;
25031     }
25032 
setDstSetVULKAN_HPP_NAMESPACE::CopyDescriptorSet25033     CopyDescriptorSet & setDstSet( vk::DescriptorSet dstSet_ )
25034     {
25035       dstSet = dstSet_;
25036       return *this;
25037     }
25038 
setDstBindingVULKAN_HPP_NAMESPACE::CopyDescriptorSet25039     CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ )
25040     {
25041       dstBinding = dstBinding_;
25042       return *this;
25043     }
25044 
setDstArrayElementVULKAN_HPP_NAMESPACE::CopyDescriptorSet25045     CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ )
25046     {
25047       dstArrayElement = dstArrayElement_;
25048       return *this;
25049     }
25050 
setDescriptorCountVULKAN_HPP_NAMESPACE::CopyDescriptorSet25051     CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ )
25052     {
25053       descriptorCount = descriptorCount_;
25054       return *this;
25055     }
25056 
operator VkCopyDescriptorSet const&VULKAN_HPP_NAMESPACE::CopyDescriptorSet25057     operator VkCopyDescriptorSet const&() const
25058     {
25059       return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
25060     }
25061 
operator VkCopyDescriptorSet&VULKAN_HPP_NAMESPACE::CopyDescriptorSet25062     operator VkCopyDescriptorSet &()
25063     {
25064       return *reinterpret_cast<VkCopyDescriptorSet*>( this );
25065     }
25066 
operator ==VULKAN_HPP_NAMESPACE::CopyDescriptorSet25067     bool operator==( CopyDescriptorSet const& rhs ) const
25068     {
25069       return ( sType == rhs.sType )
25070           && ( pNext == rhs.pNext )
25071           && ( srcSet == rhs.srcSet )
25072           && ( srcBinding == rhs.srcBinding )
25073           && ( srcArrayElement == rhs.srcArrayElement )
25074           && ( dstSet == rhs.dstSet )
25075           && ( dstBinding == rhs.dstBinding )
25076           && ( dstArrayElement == rhs.dstArrayElement )
25077           && ( descriptorCount == rhs.descriptorCount );
25078     }
25079 
operator !=VULKAN_HPP_NAMESPACE::CopyDescriptorSet25080     bool operator!=( CopyDescriptorSet const& rhs ) const
25081     {
25082       return !operator==( rhs );
25083     }
25084 
25085   private:
25086     using layout::CopyDescriptorSet::sType;
25087   };
25088   static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
25089   static_assert( std::is_standard_layout<CopyDescriptorSet>::value, "struct wrapper is not a standard layout!" );
25090 
25091 #ifdef VK_USE_PLATFORM_WIN32_KHR
25092 
25093   namespace layout
25094   {
25095     struct D3D12FenceSubmitInfoKHR
25096     {
25097     protected:
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::layout::D3D12FenceSubmitInfoKHR25098       D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = 0,
25099                                const uint64_t* pWaitSemaphoreValues_ = nullptr,
25100                                uint32_t signalSemaphoreValuesCount_ = 0,
25101                                const uint64_t* pSignalSemaphoreValues_ = nullptr )
25102         : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
25103         , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
25104         , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
25105         , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
25106       {}
25107 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::layout::D3D12FenceSubmitInfoKHR25108       D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs )
25109       {
25110         *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this) = rhs;
25111       }
25112 
operator =VULKAN_HPP_NAMESPACE::layout::D3D12FenceSubmitInfoKHR25113       D3D12FenceSubmitInfoKHR& operator=( VkD3D12FenceSubmitInfoKHR const & rhs )
25114       {
25115         *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this) = rhs;
25116         return *this;
25117       }
25118 
25119     public:
25120       vk::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
25121       const void* pNext = nullptr;
25122       uint32_t waitSemaphoreValuesCount;
25123       const uint64_t* pWaitSemaphoreValues;
25124       uint32_t signalSemaphoreValuesCount;
25125       const uint64_t* pSignalSemaphoreValues;
25126     };
25127     static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "layout struct and wrapper have different size!" );
25128   }
25129 
25130   struct D3D12FenceSubmitInfoKHR : public layout::D3D12FenceSubmitInfoKHR
25131   {
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25132     D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = 0,
25133                              const uint64_t* pWaitSemaphoreValues_ = nullptr,
25134                              uint32_t signalSemaphoreValuesCount_ = 0,
25135                              const uint64_t* pSignalSemaphoreValues_ = nullptr )
25136       : layout::D3D12FenceSubmitInfoKHR( waitSemaphoreValuesCount_, pWaitSemaphoreValues_, signalSemaphoreValuesCount_, pSignalSemaphoreValues_ )
25137     {}
25138 
D3D12FenceSubmitInfoKHRVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25139     D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs )
25140       : layout::D3D12FenceSubmitInfoKHR( rhs )
25141     {}
25142 
operator =VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25143     D3D12FenceSubmitInfoKHR& operator=( VkD3D12FenceSubmitInfoKHR const & rhs )
25144     {
25145       *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this) = rhs;
25146       return *this;
25147     }
25148 
setPNextVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25149     D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ )
25150     {
25151       pNext = pNext_;
25152       return *this;
25153     }
25154 
setWaitSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25155     D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ )
25156     {
25157       waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
25158       return *this;
25159     }
25160 
setPWaitSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25161     D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ )
25162     {
25163       pWaitSemaphoreValues = pWaitSemaphoreValues_;
25164       return *this;
25165     }
25166 
setSignalSemaphoreValuesCountVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25167     D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ )
25168     {
25169       signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
25170       return *this;
25171     }
25172 
setPSignalSemaphoreValuesVULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25173     D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ )
25174     {
25175       pSignalSemaphoreValues = pSignalSemaphoreValues_;
25176       return *this;
25177     }
25178 
operator VkD3D12FenceSubmitInfoKHR const&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25179     operator VkD3D12FenceSubmitInfoKHR const&() const
25180     {
25181       return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
25182     }
25183 
operator VkD3D12FenceSubmitInfoKHR&VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25184     operator VkD3D12FenceSubmitInfoKHR &()
25185     {
25186       return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
25187     }
25188 
operator ==VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25189     bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const
25190     {
25191       return ( sType == rhs.sType )
25192           && ( pNext == rhs.pNext )
25193           && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
25194           && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
25195           && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
25196           && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
25197     }
25198 
operator !=VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR25199     bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const
25200     {
25201       return !operator==( rhs );
25202     }
25203 
25204   private:
25205     using layout::D3D12FenceSubmitInfoKHR::sType;
25206   };
25207   static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
25208   static_assert( std::is_standard_layout<D3D12FenceSubmitInfoKHR>::value, "struct wrapper is not a standard layout!" );
25209 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
25210 
25211   namespace layout
25212   {
25213     struct DebugMarkerMarkerInfoEXT
25214     {
25215     protected:
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerMarkerInfoEXT25216       DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = nullptr,
25217                                 std::array<float,4> const& color_ = { { 0 } } )
25218         : pMarkerName( pMarkerName_ )
25219       {
25220         memcpy( &color, color_.data(), 4 * sizeof( float ) );
25221 
25222       }
25223 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerMarkerInfoEXT25224       DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs )
25225       {
25226         *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this) = rhs;
25227       }
25228 
operator =VULKAN_HPP_NAMESPACE::layout::DebugMarkerMarkerInfoEXT25229       DebugMarkerMarkerInfoEXT& operator=( VkDebugMarkerMarkerInfoEXT const & rhs )
25230       {
25231         *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this) = rhs;
25232         return *this;
25233       }
25234 
25235     public:
25236       vk::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
25237       const void* pNext = nullptr;
25238       const char* pMarkerName;
25239       float color[4];
25240     };
25241     static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "layout struct and wrapper have different size!" );
25242   }
25243 
25244   struct DebugMarkerMarkerInfoEXT : public layout::DebugMarkerMarkerInfoEXT
25245   {
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25246     DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = nullptr,
25247                               std::array<float,4> const& color_ = { { 0 } } )
25248       : layout::DebugMarkerMarkerInfoEXT( pMarkerName_, color_ )
25249     {}
25250 
DebugMarkerMarkerInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25251     DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs )
25252       : layout::DebugMarkerMarkerInfoEXT( rhs )
25253     {}
25254 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25255     DebugMarkerMarkerInfoEXT& operator=( VkDebugMarkerMarkerInfoEXT const & rhs )
25256     {
25257       *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this) = rhs;
25258       return *this;
25259     }
25260 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25261     DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ )
25262     {
25263       pNext = pNext_;
25264       return *this;
25265     }
25266 
setPMarkerNameVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25267     DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ )
25268     {
25269       pMarkerName = pMarkerName_;
25270       return *this;
25271     }
25272 
setColorVULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25273     DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ )
25274     {
25275       memcpy( color, color_.data(), 4 * sizeof( float ) );
25276       return *this;
25277     }
25278 
operator VkDebugMarkerMarkerInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25279     operator VkDebugMarkerMarkerInfoEXT const&() const
25280     {
25281       return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
25282     }
25283 
operator VkDebugMarkerMarkerInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25284     operator VkDebugMarkerMarkerInfoEXT &()
25285     {
25286       return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
25287     }
25288 
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25289     bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const
25290     {
25291       return ( sType == rhs.sType )
25292           && ( pNext == rhs.pNext )
25293           && ( pMarkerName == rhs.pMarkerName )
25294           && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 );
25295     }
25296 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT25297     bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const
25298     {
25299       return !operator==( rhs );
25300     }
25301 
25302   private:
25303     using layout::DebugMarkerMarkerInfoEXT::sType;
25304   };
25305   static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
25306   static_assert( std::is_standard_layout<DebugMarkerMarkerInfoEXT>::value, "struct wrapper is not a standard layout!" );
25307 
25308   namespace layout
25309   {
25310     struct DebugMarkerObjectNameInfoEXT
25311     {
25312     protected:
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectNameInfoEXT25313       DebugMarkerObjectNameInfoEXT( vk::DebugReportObjectTypeEXT objectType_ = vk::DebugReportObjectTypeEXT::eUnknown,
25314                                     uint64_t object_ = 0,
25315                                     const char* pObjectName_ = nullptr )
25316         : objectType( objectType_ )
25317         , object( object_ )
25318         , pObjectName( pObjectName_ )
25319       {}
25320 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectNameInfoEXT25321       DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs )
25322       {
25323         *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this) = rhs;
25324       }
25325 
operator =VULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectNameInfoEXT25326       DebugMarkerObjectNameInfoEXT& operator=( VkDebugMarkerObjectNameInfoEXT const & rhs )
25327       {
25328         *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this) = rhs;
25329         return *this;
25330       }
25331 
25332     public:
25333       vk::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
25334       const void* pNext = nullptr;
25335       vk::DebugReportObjectTypeEXT objectType;
25336       uint64_t object;
25337       const char* pObjectName;
25338     };
25339     static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "layout struct and wrapper have different size!" );
25340   }
25341 
25342   struct DebugMarkerObjectNameInfoEXT : public layout::DebugMarkerObjectNameInfoEXT
25343   {
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25344     DebugMarkerObjectNameInfoEXT( vk::DebugReportObjectTypeEXT objectType_ = vk::DebugReportObjectTypeEXT::eUnknown,
25345                                   uint64_t object_ = 0,
25346                                   const char* pObjectName_ = nullptr )
25347       : layout::DebugMarkerObjectNameInfoEXT( objectType_, object_, pObjectName_ )
25348     {}
25349 
DebugMarkerObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25350     DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs )
25351       : layout::DebugMarkerObjectNameInfoEXT( rhs )
25352     {}
25353 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25354     DebugMarkerObjectNameInfoEXT& operator=( VkDebugMarkerObjectNameInfoEXT const & rhs )
25355     {
25356       *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this) = rhs;
25357       return *this;
25358     }
25359 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25360     DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ )
25361     {
25362       pNext = pNext_;
25363       return *this;
25364     }
25365 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25366     DebugMarkerObjectNameInfoEXT & setObjectType( vk::DebugReportObjectTypeEXT objectType_ )
25367     {
25368       objectType = objectType_;
25369       return *this;
25370     }
25371 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25372     DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ )
25373     {
25374       object = object_;
25375       return *this;
25376     }
25377 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25378     DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ )
25379     {
25380       pObjectName = pObjectName_;
25381       return *this;
25382     }
25383 
operator VkDebugMarkerObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25384     operator VkDebugMarkerObjectNameInfoEXT const&() const
25385     {
25386       return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
25387     }
25388 
operator VkDebugMarkerObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25389     operator VkDebugMarkerObjectNameInfoEXT &()
25390     {
25391       return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
25392     }
25393 
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25394     bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const
25395     {
25396       return ( sType == rhs.sType )
25397           && ( pNext == rhs.pNext )
25398           && ( objectType == rhs.objectType )
25399           && ( object == rhs.object )
25400           && ( pObjectName == rhs.pObjectName );
25401     }
25402 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT25403     bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const
25404     {
25405       return !operator==( rhs );
25406     }
25407 
25408   private:
25409     using layout::DebugMarkerObjectNameInfoEXT::sType;
25410   };
25411   static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
25412   static_assert( std::is_standard_layout<DebugMarkerObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
25413 
25414   namespace layout
25415   {
25416     struct DebugMarkerObjectTagInfoEXT
25417     {
25418     protected:
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectTagInfoEXT25419       DebugMarkerObjectTagInfoEXT( vk::DebugReportObjectTypeEXT objectType_ = vk::DebugReportObjectTypeEXT::eUnknown,
25420                                    uint64_t object_ = 0,
25421                                    uint64_t tagName_ = 0,
25422                                    size_t tagSize_ = 0,
25423                                    const void* pTag_ = nullptr )
25424         : objectType( objectType_ )
25425         , object( object_ )
25426         , tagName( tagName_ )
25427         , tagSize( tagSize_ )
25428         , pTag( pTag_ )
25429       {}
25430 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectTagInfoEXT25431       DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs )
25432       {
25433         *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this) = rhs;
25434       }
25435 
operator =VULKAN_HPP_NAMESPACE::layout::DebugMarkerObjectTagInfoEXT25436       DebugMarkerObjectTagInfoEXT& operator=( VkDebugMarkerObjectTagInfoEXT const & rhs )
25437       {
25438         *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this) = rhs;
25439         return *this;
25440       }
25441 
25442     public:
25443       vk::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
25444       const void* pNext = nullptr;
25445       vk::DebugReportObjectTypeEXT objectType;
25446       uint64_t object;
25447       uint64_t tagName;
25448       size_t tagSize;
25449       const void* pTag;
25450     };
25451     static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "layout struct and wrapper have different size!" );
25452   }
25453 
25454   struct DebugMarkerObjectTagInfoEXT : public layout::DebugMarkerObjectTagInfoEXT
25455   {
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25456     DebugMarkerObjectTagInfoEXT( vk::DebugReportObjectTypeEXT objectType_ = vk::DebugReportObjectTypeEXT::eUnknown,
25457                                  uint64_t object_ = 0,
25458                                  uint64_t tagName_ = 0,
25459                                  size_t tagSize_ = 0,
25460                                  const void* pTag_ = nullptr )
25461       : layout::DebugMarkerObjectTagInfoEXT( objectType_, object_, tagName_, tagSize_, pTag_ )
25462     {}
25463 
DebugMarkerObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25464     DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs )
25465       : layout::DebugMarkerObjectTagInfoEXT( rhs )
25466     {}
25467 
operator =VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25468     DebugMarkerObjectTagInfoEXT& operator=( VkDebugMarkerObjectTagInfoEXT const & rhs )
25469     {
25470       *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this) = rhs;
25471       return *this;
25472     }
25473 
setPNextVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25474     DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ )
25475     {
25476       pNext = pNext_;
25477       return *this;
25478     }
25479 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25480     DebugMarkerObjectTagInfoEXT & setObjectType( vk::DebugReportObjectTypeEXT objectType_ )
25481     {
25482       objectType = objectType_;
25483       return *this;
25484     }
25485 
setObjectVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25486     DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ )
25487     {
25488       object = object_;
25489       return *this;
25490     }
25491 
setTagNameVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25492     DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ )
25493     {
25494       tagName = tagName_;
25495       return *this;
25496     }
25497 
setTagSizeVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25498     DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ )
25499     {
25500       tagSize = tagSize_;
25501       return *this;
25502     }
25503 
setPTagVULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25504     DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ )
25505     {
25506       pTag = pTag_;
25507       return *this;
25508     }
25509 
operator VkDebugMarkerObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25510     operator VkDebugMarkerObjectTagInfoEXT const&() const
25511     {
25512       return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
25513     }
25514 
operator VkDebugMarkerObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25515     operator VkDebugMarkerObjectTagInfoEXT &()
25516     {
25517       return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
25518     }
25519 
operator ==VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25520     bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const
25521     {
25522       return ( sType == rhs.sType )
25523           && ( pNext == rhs.pNext )
25524           && ( objectType == rhs.objectType )
25525           && ( object == rhs.object )
25526           && ( tagName == rhs.tagName )
25527           && ( tagSize == rhs.tagSize )
25528           && ( pTag == rhs.pTag );
25529     }
25530 
operator !=VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT25531     bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const
25532     {
25533       return !operator==( rhs );
25534     }
25535 
25536   private:
25537     using layout::DebugMarkerObjectTagInfoEXT::sType;
25538   };
25539   static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
25540   static_assert( std::is_standard_layout<DebugMarkerObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
25541 
25542   namespace layout
25543   {
25544     struct DebugReportCallbackCreateInfoEXT
25545     {
25546     protected:
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugReportCallbackCreateInfoEXT25547       DebugReportCallbackCreateInfoEXT( vk::DebugReportFlagsEXT flags_ = vk::DebugReportFlagsEXT(),
25548                                         PFN_vkDebugReportCallbackEXT pfnCallback_ = nullptr,
25549                                         void* pUserData_ = nullptr )
25550         : flags( flags_ )
25551         , pfnCallback( pfnCallback_ )
25552         , pUserData( pUserData_ )
25553       {}
25554 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugReportCallbackCreateInfoEXT25555       DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs )
25556       {
25557         *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this) = rhs;
25558       }
25559 
operator =VULKAN_HPP_NAMESPACE::layout::DebugReportCallbackCreateInfoEXT25560       DebugReportCallbackCreateInfoEXT& operator=( VkDebugReportCallbackCreateInfoEXT const & rhs )
25561       {
25562         *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this) = rhs;
25563         return *this;
25564       }
25565 
25566     public:
25567       vk::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
25568       const void* pNext = nullptr;
25569       vk::DebugReportFlagsEXT flags;
25570       PFN_vkDebugReportCallbackEXT pfnCallback;
25571       void* pUserData;
25572     };
25573     static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "layout struct and wrapper have different size!" );
25574   }
25575 
25576   struct DebugReportCallbackCreateInfoEXT : public layout::DebugReportCallbackCreateInfoEXT
25577   {
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25578     DebugReportCallbackCreateInfoEXT( vk::DebugReportFlagsEXT flags_ = vk::DebugReportFlagsEXT(),
25579                                       PFN_vkDebugReportCallbackEXT pfnCallback_ = nullptr,
25580                                       void* pUserData_ = nullptr )
25581       : layout::DebugReportCallbackCreateInfoEXT( flags_, pfnCallback_, pUserData_ )
25582     {}
25583 
DebugReportCallbackCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25584     DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs )
25585       : layout::DebugReportCallbackCreateInfoEXT( rhs )
25586     {}
25587 
operator =VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25588     DebugReportCallbackCreateInfoEXT& operator=( VkDebugReportCallbackCreateInfoEXT const & rhs )
25589     {
25590       *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this) = rhs;
25591       return *this;
25592     }
25593 
setPNextVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25594     DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ )
25595     {
25596       pNext = pNext_;
25597       return *this;
25598     }
25599 
setFlagsVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25600     DebugReportCallbackCreateInfoEXT & setFlags( vk::DebugReportFlagsEXT flags_ )
25601     {
25602       flags = flags_;
25603       return *this;
25604     }
25605 
setPfnCallbackVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25606     DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ )
25607     {
25608       pfnCallback = pfnCallback_;
25609       return *this;
25610     }
25611 
setPUserDataVULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25612     DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ )
25613     {
25614       pUserData = pUserData_;
25615       return *this;
25616     }
25617 
operator VkDebugReportCallbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25618     operator VkDebugReportCallbackCreateInfoEXT const&() const
25619     {
25620       return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
25621     }
25622 
operator VkDebugReportCallbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25623     operator VkDebugReportCallbackCreateInfoEXT &()
25624     {
25625       return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
25626     }
25627 
operator ==VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25628     bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const
25629     {
25630       return ( sType == rhs.sType )
25631           && ( pNext == rhs.pNext )
25632           && ( flags == rhs.flags )
25633           && ( pfnCallback == rhs.pfnCallback )
25634           && ( pUserData == rhs.pUserData );
25635     }
25636 
operator !=VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT25637     bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const
25638     {
25639       return !operator==( rhs );
25640     }
25641 
25642   private:
25643     using layout::DebugReportCallbackCreateInfoEXT::sType;
25644   };
25645   static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
25646   static_assert( std::is_standard_layout<DebugReportCallbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
25647 
25648   namespace layout
25649   {
25650     struct DebugUtilsLabelEXT
25651     {
25652     protected:
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsLabelEXT25653       DebugUtilsLabelEXT( const char* pLabelName_ = nullptr,
25654                           std::array<float,4> const& color_ = { { 0 } } )
25655         : pLabelName( pLabelName_ )
25656       {
25657         memcpy( &color, color_.data(), 4 * sizeof( float ) );
25658 
25659       }
25660 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsLabelEXT25661       DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs )
25662       {
25663         *reinterpret_cast<VkDebugUtilsLabelEXT*>(this) = rhs;
25664       }
25665 
operator =VULKAN_HPP_NAMESPACE::layout::DebugUtilsLabelEXT25666       DebugUtilsLabelEXT& operator=( VkDebugUtilsLabelEXT const & rhs )
25667       {
25668         *reinterpret_cast<VkDebugUtilsLabelEXT*>(this) = rhs;
25669         return *this;
25670       }
25671 
25672     public:
25673       vk::StructureType sType = StructureType::eDebugUtilsLabelEXT;
25674       const void* pNext = nullptr;
25675       const char* pLabelName;
25676       float color[4];
25677     };
25678     static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "layout struct and wrapper have different size!" );
25679   }
25680 
25681   struct DebugUtilsLabelEXT : public layout::DebugUtilsLabelEXT
25682   {
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25683     DebugUtilsLabelEXT( const char* pLabelName_ = nullptr,
25684                         std::array<float,4> const& color_ = { { 0 } } )
25685       : layout::DebugUtilsLabelEXT( pLabelName_, color_ )
25686     {}
25687 
DebugUtilsLabelEXTVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25688     DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs )
25689       : layout::DebugUtilsLabelEXT( rhs )
25690     {}
25691 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25692     DebugUtilsLabelEXT& operator=( VkDebugUtilsLabelEXT const & rhs )
25693     {
25694       *reinterpret_cast<VkDebugUtilsLabelEXT*>(this) = rhs;
25695       return *this;
25696     }
25697 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25698     DebugUtilsLabelEXT & setPNext( const void* pNext_ )
25699     {
25700       pNext = pNext_;
25701       return *this;
25702     }
25703 
setPLabelNameVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25704     DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ )
25705     {
25706       pLabelName = pLabelName_;
25707       return *this;
25708     }
25709 
setColorVULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25710     DebugUtilsLabelEXT & setColor( std::array<float,4> color_ )
25711     {
25712       memcpy( color, color_.data(), 4 * sizeof( float ) );
25713       return *this;
25714     }
25715 
operator VkDebugUtilsLabelEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25716     operator VkDebugUtilsLabelEXT const&() const
25717     {
25718       return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
25719     }
25720 
operator VkDebugUtilsLabelEXT&VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25721     operator VkDebugUtilsLabelEXT &()
25722     {
25723       return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
25724     }
25725 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25726     bool operator==( DebugUtilsLabelEXT const& rhs ) const
25727     {
25728       return ( sType == rhs.sType )
25729           && ( pNext == rhs.pNext )
25730           && ( pLabelName == rhs.pLabelName )
25731           && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 );
25732     }
25733 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT25734     bool operator!=( DebugUtilsLabelEXT const& rhs ) const
25735     {
25736       return !operator==( rhs );
25737     }
25738 
25739   private:
25740     using layout::DebugUtilsLabelEXT::sType;
25741   };
25742   static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
25743   static_assert( std::is_standard_layout<DebugUtilsLabelEXT>::value, "struct wrapper is not a standard layout!" );
25744 
25745   namespace layout
25746   {
25747     struct DebugUtilsObjectNameInfoEXT
25748     {
25749     protected:
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectNameInfoEXT25750       DebugUtilsObjectNameInfoEXT( vk::ObjectType objectType_ = vk::ObjectType::eUnknown,
25751                                    uint64_t objectHandle_ = 0,
25752                                    const char* pObjectName_ = nullptr )
25753         : objectType( objectType_ )
25754         , objectHandle( objectHandle_ )
25755         , pObjectName( pObjectName_ )
25756       {}
25757 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectNameInfoEXT25758       DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs )
25759       {
25760         *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this) = rhs;
25761       }
25762 
operator =VULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectNameInfoEXT25763       DebugUtilsObjectNameInfoEXT& operator=( VkDebugUtilsObjectNameInfoEXT const & rhs )
25764       {
25765         *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this) = rhs;
25766         return *this;
25767       }
25768 
25769     public:
25770       vk::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
25771       const void* pNext = nullptr;
25772       vk::ObjectType objectType;
25773       uint64_t objectHandle;
25774       const char* pObjectName;
25775     };
25776     static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "layout struct and wrapper have different size!" );
25777   }
25778 
25779   struct DebugUtilsObjectNameInfoEXT : public layout::DebugUtilsObjectNameInfoEXT
25780   {
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25781     DebugUtilsObjectNameInfoEXT( vk::ObjectType objectType_ = vk::ObjectType::eUnknown,
25782                                  uint64_t objectHandle_ = 0,
25783                                  const char* pObjectName_ = nullptr )
25784       : layout::DebugUtilsObjectNameInfoEXT( objectType_, objectHandle_, pObjectName_ )
25785     {}
25786 
DebugUtilsObjectNameInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25787     DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs )
25788       : layout::DebugUtilsObjectNameInfoEXT( rhs )
25789     {}
25790 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25791     DebugUtilsObjectNameInfoEXT& operator=( VkDebugUtilsObjectNameInfoEXT const & rhs )
25792     {
25793       *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this) = rhs;
25794       return *this;
25795     }
25796 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25797     DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ )
25798     {
25799       pNext = pNext_;
25800       return *this;
25801     }
25802 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25803     DebugUtilsObjectNameInfoEXT & setObjectType( vk::ObjectType objectType_ )
25804     {
25805       objectType = objectType_;
25806       return *this;
25807     }
25808 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25809     DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ )
25810     {
25811       objectHandle = objectHandle_;
25812       return *this;
25813     }
25814 
setPObjectNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25815     DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ )
25816     {
25817       pObjectName = pObjectName_;
25818       return *this;
25819     }
25820 
operator VkDebugUtilsObjectNameInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25821     operator VkDebugUtilsObjectNameInfoEXT const&() const
25822     {
25823       return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
25824     }
25825 
operator VkDebugUtilsObjectNameInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25826     operator VkDebugUtilsObjectNameInfoEXT &()
25827     {
25828       return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
25829     }
25830 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25831     bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const
25832     {
25833       return ( sType == rhs.sType )
25834           && ( pNext == rhs.pNext )
25835           && ( objectType == rhs.objectType )
25836           && ( objectHandle == rhs.objectHandle )
25837           && ( pObjectName == rhs.pObjectName );
25838     }
25839 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT25840     bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const
25841     {
25842       return !operator==( rhs );
25843     }
25844 
25845   private:
25846     using layout::DebugUtilsObjectNameInfoEXT::sType;
25847   };
25848   static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
25849   static_assert( std::is_standard_layout<DebugUtilsObjectNameInfoEXT>::value, "struct wrapper is not a standard layout!" );
25850 
25851   namespace layout
25852   {
25853     struct DebugUtilsMessengerCallbackDataEXT
25854     {
25855     protected:
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCallbackDataEXT25856       DebugUtilsMessengerCallbackDataEXT( vk::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = vk::DebugUtilsMessengerCallbackDataFlagsEXT(),
25857                                           const char* pMessageIdName_ = nullptr,
25858                                           int32_t messageIdNumber_ = 0,
25859                                           const char* pMessage_ = nullptr,
25860                                           uint32_t queueLabelCount_ = 0,
25861                                           const vk::DebugUtilsLabelEXT* pQueueLabels_ = nullptr,
25862                                           uint32_t cmdBufLabelCount_ = 0,
25863                                           const vk::DebugUtilsLabelEXT* pCmdBufLabels_ = nullptr,
25864                                           uint32_t objectCount_ = 0,
25865                                           const vk::DebugUtilsObjectNameInfoEXT* pObjects_ = nullptr )
25866         : flags( flags_ )
25867         , pMessageIdName( pMessageIdName_ )
25868         , messageIdNumber( messageIdNumber_ )
25869         , pMessage( pMessage_ )
25870         , queueLabelCount( queueLabelCount_ )
25871         , pQueueLabels( pQueueLabels_ )
25872         , cmdBufLabelCount( cmdBufLabelCount_ )
25873         , pCmdBufLabels( pCmdBufLabels_ )
25874         , objectCount( objectCount_ )
25875         , pObjects( pObjects_ )
25876       {}
25877 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCallbackDataEXT25878       DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
25879       {
25880         *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this) = rhs;
25881       }
25882 
operator =VULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCallbackDataEXT25883       DebugUtilsMessengerCallbackDataEXT& operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
25884       {
25885         *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this) = rhs;
25886         return *this;
25887       }
25888 
25889     public:
25890       vk::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
25891       const void* pNext = nullptr;
25892       vk::DebugUtilsMessengerCallbackDataFlagsEXT flags;
25893       const char* pMessageIdName;
25894       int32_t messageIdNumber;
25895       const char* pMessage;
25896       uint32_t queueLabelCount;
25897       const vk::DebugUtilsLabelEXT* pQueueLabels;
25898       uint32_t cmdBufLabelCount;
25899       const vk::DebugUtilsLabelEXT* pCmdBufLabels;
25900       uint32_t objectCount;
25901       const vk::DebugUtilsObjectNameInfoEXT* pObjects;
25902     };
25903     static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "layout struct and wrapper have different size!" );
25904   }
25905 
25906   struct DebugUtilsMessengerCallbackDataEXT : public layout::DebugUtilsMessengerCallbackDataEXT
25907   {
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25908     DebugUtilsMessengerCallbackDataEXT( vk::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = vk::DebugUtilsMessengerCallbackDataFlagsEXT(),
25909                                         const char* pMessageIdName_ = nullptr,
25910                                         int32_t messageIdNumber_ = 0,
25911                                         const char* pMessage_ = nullptr,
25912                                         uint32_t queueLabelCount_ = 0,
25913                                         const vk::DebugUtilsLabelEXT* pQueueLabels_ = nullptr,
25914                                         uint32_t cmdBufLabelCount_ = 0,
25915                                         const vk::DebugUtilsLabelEXT* pCmdBufLabels_ = nullptr,
25916                                         uint32_t objectCount_ = 0,
25917                                         const vk::DebugUtilsObjectNameInfoEXT* pObjects_ = nullptr )
25918       : layout::DebugUtilsMessengerCallbackDataEXT( flags_, pMessageIdName_, messageIdNumber_, pMessage_, queueLabelCount_, pQueueLabels_, cmdBufLabelCount_, pCmdBufLabels_, objectCount_, pObjects_ )
25919     {}
25920 
DebugUtilsMessengerCallbackDataEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25921     DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
25922       : layout::DebugUtilsMessengerCallbackDataEXT( rhs )
25923     {}
25924 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25925     DebugUtilsMessengerCallbackDataEXT& operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
25926     {
25927       *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this) = rhs;
25928       return *this;
25929     }
25930 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25931     DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ )
25932     {
25933       pNext = pNext_;
25934       return *this;
25935     }
25936 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25937     DebugUtilsMessengerCallbackDataEXT & setFlags( vk::DebugUtilsMessengerCallbackDataFlagsEXT flags_ )
25938     {
25939       flags = flags_;
25940       return *this;
25941     }
25942 
setPMessageIdNameVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25943     DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ )
25944     {
25945       pMessageIdName = pMessageIdName_;
25946       return *this;
25947     }
25948 
setMessageIdNumberVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25949     DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ )
25950     {
25951       messageIdNumber = messageIdNumber_;
25952       return *this;
25953     }
25954 
setPMessageVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25955     DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ )
25956     {
25957       pMessage = pMessage_;
25958       return *this;
25959     }
25960 
setQueueLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25961     DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ )
25962     {
25963       queueLabelCount = queueLabelCount_;
25964       return *this;
25965     }
25966 
setPQueueLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25967     DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const vk::DebugUtilsLabelEXT* pQueueLabels_ )
25968     {
25969       pQueueLabels = pQueueLabels_;
25970       return *this;
25971     }
25972 
setCmdBufLabelCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25973     DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ )
25974     {
25975       cmdBufLabelCount = cmdBufLabelCount_;
25976       return *this;
25977     }
25978 
setPCmdBufLabelsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25979     DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const vk::DebugUtilsLabelEXT* pCmdBufLabels_ )
25980     {
25981       pCmdBufLabels = pCmdBufLabels_;
25982       return *this;
25983     }
25984 
setObjectCountVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25985     DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ )
25986     {
25987       objectCount = objectCount_;
25988       return *this;
25989     }
25990 
setPObjectsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25991     DebugUtilsMessengerCallbackDataEXT & setPObjects( const vk::DebugUtilsObjectNameInfoEXT* pObjects_ )
25992     {
25993       pObjects = pObjects_;
25994       return *this;
25995     }
25996 
operator VkDebugUtilsMessengerCallbackDataEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT25997     operator VkDebugUtilsMessengerCallbackDataEXT const&() const
25998     {
25999       return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
26000     }
26001 
operator VkDebugUtilsMessengerCallbackDataEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT26002     operator VkDebugUtilsMessengerCallbackDataEXT &()
26003     {
26004       return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
26005     }
26006 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT26007     bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const
26008     {
26009       return ( sType == rhs.sType )
26010           && ( pNext == rhs.pNext )
26011           && ( flags == rhs.flags )
26012           && ( pMessageIdName == rhs.pMessageIdName )
26013           && ( messageIdNumber == rhs.messageIdNumber )
26014           && ( pMessage == rhs.pMessage )
26015           && ( queueLabelCount == rhs.queueLabelCount )
26016           && ( pQueueLabels == rhs.pQueueLabels )
26017           && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
26018           && ( pCmdBufLabels == rhs.pCmdBufLabels )
26019           && ( objectCount == rhs.objectCount )
26020           && ( pObjects == rhs.pObjects );
26021     }
26022 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT26023     bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const
26024     {
26025       return !operator==( rhs );
26026     }
26027 
26028   private:
26029     using layout::DebugUtilsMessengerCallbackDataEXT::sType;
26030   };
26031   static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
26032   static_assert( std::is_standard_layout<DebugUtilsMessengerCallbackDataEXT>::value, "struct wrapper is not a standard layout!" );
26033 
26034   namespace layout
26035   {
26036     struct DebugUtilsMessengerCreateInfoEXT
26037     {
26038     protected:
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCreateInfoEXT26039       DebugUtilsMessengerCreateInfoEXT( vk::DebugUtilsMessengerCreateFlagsEXT flags_ = vk::DebugUtilsMessengerCreateFlagsEXT(),
26040                                         vk::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = vk::DebugUtilsMessageSeverityFlagsEXT(),
26041                                         vk::DebugUtilsMessageTypeFlagsEXT messageType_ = vk::DebugUtilsMessageTypeFlagsEXT(),
26042                                         PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = nullptr,
26043                                         void* pUserData_ = nullptr )
26044         : flags( flags_ )
26045         , messageSeverity( messageSeverity_ )
26046         , messageType( messageType_ )
26047         , pfnUserCallback( pfnUserCallback_ )
26048         , pUserData( pUserData_ )
26049       {}
26050 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCreateInfoEXT26051       DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
26052       {
26053         *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this) = rhs;
26054       }
26055 
operator =VULKAN_HPP_NAMESPACE::layout::DebugUtilsMessengerCreateInfoEXT26056       DebugUtilsMessengerCreateInfoEXT& operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
26057       {
26058         *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this) = rhs;
26059         return *this;
26060       }
26061 
26062     public:
26063       vk::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
26064       const void* pNext = nullptr;
26065       vk::DebugUtilsMessengerCreateFlagsEXT flags;
26066       vk::DebugUtilsMessageSeverityFlagsEXT messageSeverity;
26067       vk::DebugUtilsMessageTypeFlagsEXT messageType;
26068       PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
26069       void* pUserData;
26070     };
26071     static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "layout struct and wrapper have different size!" );
26072   }
26073 
26074   struct DebugUtilsMessengerCreateInfoEXT : public layout::DebugUtilsMessengerCreateInfoEXT
26075   {
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26076     DebugUtilsMessengerCreateInfoEXT( vk::DebugUtilsMessengerCreateFlagsEXT flags_ = vk::DebugUtilsMessengerCreateFlagsEXT(),
26077                                       vk::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = vk::DebugUtilsMessageSeverityFlagsEXT(),
26078                                       vk::DebugUtilsMessageTypeFlagsEXT messageType_ = vk::DebugUtilsMessageTypeFlagsEXT(),
26079                                       PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = nullptr,
26080                                       void* pUserData_ = nullptr )
26081       : layout::DebugUtilsMessengerCreateInfoEXT( flags_, messageSeverity_, messageType_, pfnUserCallback_, pUserData_ )
26082     {}
26083 
DebugUtilsMessengerCreateInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26084     DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
26085       : layout::DebugUtilsMessengerCreateInfoEXT( rhs )
26086     {}
26087 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26088     DebugUtilsMessengerCreateInfoEXT& operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
26089     {
26090       *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this) = rhs;
26091       return *this;
26092     }
26093 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26094     DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ )
26095     {
26096       pNext = pNext_;
26097       return *this;
26098     }
26099 
setFlagsVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26100     DebugUtilsMessengerCreateInfoEXT & setFlags( vk::DebugUtilsMessengerCreateFlagsEXT flags_ )
26101     {
26102       flags = flags_;
26103       return *this;
26104     }
26105 
setMessageSeverityVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26106     DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( vk::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ )
26107     {
26108       messageSeverity = messageSeverity_;
26109       return *this;
26110     }
26111 
setMessageTypeVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26112     DebugUtilsMessengerCreateInfoEXT & setMessageType( vk::DebugUtilsMessageTypeFlagsEXT messageType_ )
26113     {
26114       messageType = messageType_;
26115       return *this;
26116     }
26117 
setPfnUserCallbackVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26118     DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ )
26119     {
26120       pfnUserCallback = pfnUserCallback_;
26121       return *this;
26122     }
26123 
setPUserDataVULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26124     DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ )
26125     {
26126       pUserData = pUserData_;
26127       return *this;
26128     }
26129 
operator VkDebugUtilsMessengerCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26130     operator VkDebugUtilsMessengerCreateInfoEXT const&() const
26131     {
26132       return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
26133     }
26134 
operator VkDebugUtilsMessengerCreateInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26135     operator VkDebugUtilsMessengerCreateInfoEXT &()
26136     {
26137       return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
26138     }
26139 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26140     bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const
26141     {
26142       return ( sType == rhs.sType )
26143           && ( pNext == rhs.pNext )
26144           && ( flags == rhs.flags )
26145           && ( messageSeverity == rhs.messageSeverity )
26146           && ( messageType == rhs.messageType )
26147           && ( pfnUserCallback == rhs.pfnUserCallback )
26148           && ( pUserData == rhs.pUserData );
26149     }
26150 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT26151     bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const
26152     {
26153       return !operator==( rhs );
26154     }
26155 
26156   private:
26157     using layout::DebugUtilsMessengerCreateInfoEXT::sType;
26158   };
26159   static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
26160   static_assert( std::is_standard_layout<DebugUtilsMessengerCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
26161 
26162   namespace layout
26163   {
26164     struct DebugUtilsObjectTagInfoEXT
26165     {
26166     protected:
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectTagInfoEXT26167       DebugUtilsObjectTagInfoEXT( vk::ObjectType objectType_ = vk::ObjectType::eUnknown,
26168                                   uint64_t objectHandle_ = 0,
26169                                   uint64_t tagName_ = 0,
26170                                   size_t tagSize_ = 0,
26171                                   const void* pTag_ = nullptr )
26172         : objectType( objectType_ )
26173         , objectHandle( objectHandle_ )
26174         , tagName( tagName_ )
26175         , tagSize( tagSize_ )
26176         , pTag( pTag_ )
26177       {}
26178 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectTagInfoEXT26179       DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs )
26180       {
26181         *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this) = rhs;
26182       }
26183 
operator =VULKAN_HPP_NAMESPACE::layout::DebugUtilsObjectTagInfoEXT26184       DebugUtilsObjectTagInfoEXT& operator=( VkDebugUtilsObjectTagInfoEXT const & rhs )
26185       {
26186         *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this) = rhs;
26187         return *this;
26188       }
26189 
26190     public:
26191       vk::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
26192       const void* pNext = nullptr;
26193       vk::ObjectType objectType;
26194       uint64_t objectHandle;
26195       uint64_t tagName;
26196       size_t tagSize;
26197       const void* pTag;
26198     };
26199     static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "layout struct and wrapper have different size!" );
26200   }
26201 
26202   struct DebugUtilsObjectTagInfoEXT : public layout::DebugUtilsObjectTagInfoEXT
26203   {
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26204     DebugUtilsObjectTagInfoEXT( vk::ObjectType objectType_ = vk::ObjectType::eUnknown,
26205                                 uint64_t objectHandle_ = 0,
26206                                 uint64_t tagName_ = 0,
26207                                 size_t tagSize_ = 0,
26208                                 const void* pTag_ = nullptr )
26209       : layout::DebugUtilsObjectTagInfoEXT( objectType_, objectHandle_, tagName_, tagSize_, pTag_ )
26210     {}
26211 
DebugUtilsObjectTagInfoEXTVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26212     DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs )
26213       : layout::DebugUtilsObjectTagInfoEXT( rhs )
26214     {}
26215 
operator =VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26216     DebugUtilsObjectTagInfoEXT& operator=( VkDebugUtilsObjectTagInfoEXT const & rhs )
26217     {
26218       *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this) = rhs;
26219       return *this;
26220     }
26221 
setPNextVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26222     DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ )
26223     {
26224       pNext = pNext_;
26225       return *this;
26226     }
26227 
setObjectTypeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26228     DebugUtilsObjectTagInfoEXT & setObjectType( vk::ObjectType objectType_ )
26229     {
26230       objectType = objectType_;
26231       return *this;
26232     }
26233 
setObjectHandleVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26234     DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ )
26235     {
26236       objectHandle = objectHandle_;
26237       return *this;
26238     }
26239 
setTagNameVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26240     DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ )
26241     {
26242       tagName = tagName_;
26243       return *this;
26244     }
26245 
setTagSizeVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26246     DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ )
26247     {
26248       tagSize = tagSize_;
26249       return *this;
26250     }
26251 
setPTagVULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26252     DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ )
26253     {
26254       pTag = pTag_;
26255       return *this;
26256     }
26257 
operator VkDebugUtilsObjectTagInfoEXT const&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26258     operator VkDebugUtilsObjectTagInfoEXT const&() const
26259     {
26260       return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
26261     }
26262 
operator VkDebugUtilsObjectTagInfoEXT&VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26263     operator VkDebugUtilsObjectTagInfoEXT &()
26264     {
26265       return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
26266     }
26267 
operator ==VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26268     bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const
26269     {
26270       return ( sType == rhs.sType )
26271           && ( pNext == rhs.pNext )
26272           && ( objectType == rhs.objectType )
26273           && ( objectHandle == rhs.objectHandle )
26274           && ( tagName == rhs.tagName )
26275           && ( tagSize == rhs.tagSize )
26276           && ( pTag == rhs.pTag );
26277     }
26278 
operator !=VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT26279     bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const
26280     {
26281       return !operator==( rhs );
26282     }
26283 
26284   private:
26285     using layout::DebugUtilsObjectTagInfoEXT::sType;
26286   };
26287   static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
26288   static_assert( std::is_standard_layout<DebugUtilsObjectTagInfoEXT>::value, "struct wrapper is not a standard layout!" );
26289 
26290   namespace layout
26291   {
26292     struct DedicatedAllocationBufferCreateInfoNV
26293     {
26294     protected:
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationBufferCreateInfoNV26295       DedicatedAllocationBufferCreateInfoNV( vk::Bool32 dedicatedAllocation_ = 0 )
26296         : dedicatedAllocation( dedicatedAllocation_ )
26297       {}
26298 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationBufferCreateInfoNV26299       DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
26300       {
26301         *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this) = rhs;
26302       }
26303 
operator =VULKAN_HPP_NAMESPACE::layout::DedicatedAllocationBufferCreateInfoNV26304       DedicatedAllocationBufferCreateInfoNV& operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
26305       {
26306         *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this) = rhs;
26307         return *this;
26308       }
26309 
26310     public:
26311       vk::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
26312       const void* pNext = nullptr;
26313       vk::Bool32 dedicatedAllocation;
26314     };
26315     static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "layout struct and wrapper have different size!" );
26316   }
26317 
26318   struct DedicatedAllocationBufferCreateInfoNV : public layout::DedicatedAllocationBufferCreateInfoNV
26319   {
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26320     DedicatedAllocationBufferCreateInfoNV( vk::Bool32 dedicatedAllocation_ = 0 )
26321       : layout::DedicatedAllocationBufferCreateInfoNV( dedicatedAllocation_ )
26322     {}
26323 
DedicatedAllocationBufferCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26324     DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
26325       : layout::DedicatedAllocationBufferCreateInfoNV( rhs )
26326     {}
26327 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26328     DedicatedAllocationBufferCreateInfoNV& operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
26329     {
26330       *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this) = rhs;
26331       return *this;
26332     }
26333 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26334     DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ )
26335     {
26336       pNext = pNext_;
26337       return *this;
26338     }
26339 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26340     DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( vk::Bool32 dedicatedAllocation_ )
26341     {
26342       dedicatedAllocation = dedicatedAllocation_;
26343       return *this;
26344     }
26345 
operator VkDedicatedAllocationBufferCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26346     operator VkDedicatedAllocationBufferCreateInfoNV const&() const
26347     {
26348       return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
26349     }
26350 
operator VkDedicatedAllocationBufferCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26351     operator VkDedicatedAllocationBufferCreateInfoNV &()
26352     {
26353       return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
26354     }
26355 
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26356     bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const
26357     {
26358       return ( sType == rhs.sType )
26359           && ( pNext == rhs.pNext )
26360           && ( dedicatedAllocation == rhs.dedicatedAllocation );
26361     }
26362 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV26363     bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const
26364     {
26365       return !operator==( rhs );
26366     }
26367 
26368   private:
26369     using layout::DedicatedAllocationBufferCreateInfoNV::sType;
26370   };
26371   static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
26372   static_assert( std::is_standard_layout<DedicatedAllocationBufferCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
26373 
26374   namespace layout
26375   {
26376     struct DedicatedAllocationImageCreateInfoNV
26377     {
26378     protected:
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationImageCreateInfoNV26379       DedicatedAllocationImageCreateInfoNV( vk::Bool32 dedicatedAllocation_ = 0 )
26380         : dedicatedAllocation( dedicatedAllocation_ )
26381       {}
26382 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationImageCreateInfoNV26383       DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs )
26384       {
26385         *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this) = rhs;
26386       }
26387 
operator =VULKAN_HPP_NAMESPACE::layout::DedicatedAllocationImageCreateInfoNV26388       DedicatedAllocationImageCreateInfoNV& operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs )
26389       {
26390         *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this) = rhs;
26391         return *this;
26392       }
26393 
26394     public:
26395       vk::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
26396       const void* pNext = nullptr;
26397       vk::Bool32 dedicatedAllocation;
26398     };
26399     static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "layout struct and wrapper have different size!" );
26400   }
26401 
26402   struct DedicatedAllocationImageCreateInfoNV : public layout::DedicatedAllocationImageCreateInfoNV
26403   {
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26404     DedicatedAllocationImageCreateInfoNV( vk::Bool32 dedicatedAllocation_ = 0 )
26405       : layout::DedicatedAllocationImageCreateInfoNV( dedicatedAllocation_ )
26406     {}
26407 
DedicatedAllocationImageCreateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26408     DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs )
26409       : layout::DedicatedAllocationImageCreateInfoNV( rhs )
26410     {}
26411 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26412     DedicatedAllocationImageCreateInfoNV& operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs )
26413     {
26414       *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this) = rhs;
26415       return *this;
26416     }
26417 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26418     DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ )
26419     {
26420       pNext = pNext_;
26421       return *this;
26422     }
26423 
setDedicatedAllocationVULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26424     DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( vk::Bool32 dedicatedAllocation_ )
26425     {
26426       dedicatedAllocation = dedicatedAllocation_;
26427       return *this;
26428     }
26429 
operator VkDedicatedAllocationImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26430     operator VkDedicatedAllocationImageCreateInfoNV const&() const
26431     {
26432       return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
26433     }
26434 
operator VkDedicatedAllocationImageCreateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26435     operator VkDedicatedAllocationImageCreateInfoNV &()
26436     {
26437       return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
26438     }
26439 
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26440     bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const
26441     {
26442       return ( sType == rhs.sType )
26443           && ( pNext == rhs.pNext )
26444           && ( dedicatedAllocation == rhs.dedicatedAllocation );
26445     }
26446 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV26447     bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const
26448     {
26449       return !operator==( rhs );
26450     }
26451 
26452   private:
26453     using layout::DedicatedAllocationImageCreateInfoNV::sType;
26454   };
26455   static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
26456   static_assert( std::is_standard_layout<DedicatedAllocationImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
26457 
26458   namespace layout
26459   {
26460     struct DedicatedAllocationMemoryAllocateInfoNV
26461     {
26462     protected:
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationMemoryAllocateInfoNV26463       DedicatedAllocationMemoryAllocateInfoNV( vk::Image image_ = vk::Image(),
26464                                                vk::Buffer buffer_ = vk::Buffer() )
26465         : image( image_ )
26466         , buffer( buffer_ )
26467       {}
26468 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::layout::DedicatedAllocationMemoryAllocateInfoNV26469       DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
26470       {
26471         *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this) = rhs;
26472       }
26473 
operator =VULKAN_HPP_NAMESPACE::layout::DedicatedAllocationMemoryAllocateInfoNV26474       DedicatedAllocationMemoryAllocateInfoNV& operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
26475       {
26476         *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this) = rhs;
26477         return *this;
26478       }
26479 
26480     public:
26481       vk::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
26482       const void* pNext = nullptr;
26483       vk::Image image;
26484       vk::Buffer buffer;
26485     };
26486     static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "layout struct and wrapper have different size!" );
26487   }
26488 
26489   struct DedicatedAllocationMemoryAllocateInfoNV : public layout::DedicatedAllocationMemoryAllocateInfoNV
26490   {
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26491     DedicatedAllocationMemoryAllocateInfoNV( vk::Image image_ = vk::Image(),
26492                                              vk::Buffer buffer_ = vk::Buffer() )
26493       : layout::DedicatedAllocationMemoryAllocateInfoNV( image_, buffer_ )
26494     {}
26495 
DedicatedAllocationMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26496     DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
26497       : layout::DedicatedAllocationMemoryAllocateInfoNV( rhs )
26498     {}
26499 
operator =VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26500     DedicatedAllocationMemoryAllocateInfoNV& operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
26501     {
26502       *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this) = rhs;
26503       return *this;
26504     }
26505 
setPNextVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26506     DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ )
26507     {
26508       pNext = pNext_;
26509       return *this;
26510     }
26511 
setImageVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26512     DedicatedAllocationMemoryAllocateInfoNV & setImage( vk::Image image_ )
26513     {
26514       image = image_;
26515       return *this;
26516     }
26517 
setBufferVULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26518     DedicatedAllocationMemoryAllocateInfoNV & setBuffer( vk::Buffer buffer_ )
26519     {
26520       buffer = buffer_;
26521       return *this;
26522     }
26523 
operator VkDedicatedAllocationMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26524     operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const
26525     {
26526       return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
26527     }
26528 
operator VkDedicatedAllocationMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26529     operator VkDedicatedAllocationMemoryAllocateInfoNV &()
26530     {
26531       return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
26532     }
26533 
operator ==VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26534     bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const
26535     {
26536       return ( sType == rhs.sType )
26537           && ( pNext == rhs.pNext )
26538           && ( image == rhs.image )
26539           && ( buffer == rhs.buffer );
26540     }
26541 
operator !=VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV26542     bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const
26543     {
26544       return !operator==( rhs );
26545     }
26546 
26547   private:
26548     using layout::DedicatedAllocationMemoryAllocateInfoNV::sType;
26549   };
26550   static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
26551   static_assert( std::is_standard_layout<DedicatedAllocationMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
26552 
26553   struct DescriptorBufferInfo
26554   {
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo26555     DescriptorBufferInfo( vk::Buffer buffer_ = vk::Buffer(),
26556                           vk::DeviceSize offset_ = 0,
26557                           vk::DeviceSize range_ = 0 )
26558         : buffer( buffer_ )
26559         , offset( offset_ )
26560         , range( range_ )
26561     {}
26562 
DescriptorBufferInfoVULKAN_HPP_NAMESPACE::DescriptorBufferInfo26563     DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs )
26564     {
26565       *reinterpret_cast<VkDescriptorBufferInfo*>(this) = rhs;
26566     }
26567 
operator =VULKAN_HPP_NAMESPACE::DescriptorBufferInfo26568     DescriptorBufferInfo& operator=( VkDescriptorBufferInfo const & rhs )
26569     {
26570       *reinterpret_cast<VkDescriptorBufferInfo*>(this) = rhs;
26571       return *this;
26572     }
26573 
setBufferVULKAN_HPP_NAMESPACE::DescriptorBufferInfo26574     DescriptorBufferInfo & setBuffer( vk::Buffer buffer_ )
26575     {
26576       buffer = buffer_;
26577       return *this;
26578     }
26579 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorBufferInfo26580     DescriptorBufferInfo & setOffset( vk::DeviceSize offset_ )
26581     {
26582       offset = offset_;
26583       return *this;
26584     }
26585 
setRangeVULKAN_HPP_NAMESPACE::DescriptorBufferInfo26586     DescriptorBufferInfo & setRange( vk::DeviceSize range_ )
26587     {
26588       range = range_;
26589       return *this;
26590     }
26591 
operator VkDescriptorBufferInfo const&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo26592     operator VkDescriptorBufferInfo const&() const
26593     {
26594       return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
26595     }
26596 
operator VkDescriptorBufferInfo&VULKAN_HPP_NAMESPACE::DescriptorBufferInfo26597     operator VkDescriptorBufferInfo &()
26598     {
26599       return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
26600     }
26601 
operator ==VULKAN_HPP_NAMESPACE::DescriptorBufferInfo26602     bool operator==( DescriptorBufferInfo const& rhs ) const
26603     {
26604       return ( buffer == rhs.buffer )
26605           && ( offset == rhs.offset )
26606           && ( range == rhs.range );
26607     }
26608 
operator !=VULKAN_HPP_NAMESPACE::DescriptorBufferInfo26609     bool operator!=( DescriptorBufferInfo const& rhs ) const
26610     {
26611       return !operator==( rhs );
26612     }
26613 
26614   public:
26615     vk::Buffer buffer;
26616     vk::DeviceSize offset;
26617     vk::DeviceSize range;
26618   };
26619   static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
26620   static_assert( std::is_standard_layout<DescriptorBufferInfo>::value, "struct wrapper is not a standard layout!" );
26621 
26622   struct DescriptorImageInfo
26623   {
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo26624     DescriptorImageInfo( vk::Sampler sampler_ = vk::Sampler(),
26625                          vk::ImageView imageView_ = vk::ImageView(),
26626                          vk::ImageLayout imageLayout_ = vk::ImageLayout::eUndefined )
26627         : sampler( sampler_ )
26628         , imageView( imageView_ )
26629         , imageLayout( imageLayout_ )
26630     {}
26631 
DescriptorImageInfoVULKAN_HPP_NAMESPACE::DescriptorImageInfo26632     DescriptorImageInfo( VkDescriptorImageInfo const & rhs )
26633     {
26634       *reinterpret_cast<VkDescriptorImageInfo*>(this) = rhs;
26635     }
26636 
operator =VULKAN_HPP_NAMESPACE::DescriptorImageInfo26637     DescriptorImageInfo& operator=( VkDescriptorImageInfo const & rhs )
26638     {
26639       *reinterpret_cast<VkDescriptorImageInfo*>(this) = rhs;
26640       return *this;
26641     }
26642 
setSamplerVULKAN_HPP_NAMESPACE::DescriptorImageInfo26643     DescriptorImageInfo & setSampler( vk::Sampler sampler_ )
26644     {
26645       sampler = sampler_;
26646       return *this;
26647     }
26648 
setImageViewVULKAN_HPP_NAMESPACE::DescriptorImageInfo26649     DescriptorImageInfo & setImageView( vk::ImageView imageView_ )
26650     {
26651       imageView = imageView_;
26652       return *this;
26653     }
26654 
setImageLayoutVULKAN_HPP_NAMESPACE::DescriptorImageInfo26655     DescriptorImageInfo & setImageLayout( vk::ImageLayout imageLayout_ )
26656     {
26657       imageLayout = imageLayout_;
26658       return *this;
26659     }
26660 
operator VkDescriptorImageInfo const&VULKAN_HPP_NAMESPACE::DescriptorImageInfo26661     operator VkDescriptorImageInfo const&() const
26662     {
26663       return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
26664     }
26665 
operator VkDescriptorImageInfo&VULKAN_HPP_NAMESPACE::DescriptorImageInfo26666     operator VkDescriptorImageInfo &()
26667     {
26668       return *reinterpret_cast<VkDescriptorImageInfo*>( this );
26669     }
26670 
operator ==VULKAN_HPP_NAMESPACE::DescriptorImageInfo26671     bool operator==( DescriptorImageInfo const& rhs ) const
26672     {
26673       return ( sampler == rhs.sampler )
26674           && ( imageView == rhs.imageView )
26675           && ( imageLayout == rhs.imageLayout );
26676     }
26677 
operator !=VULKAN_HPP_NAMESPACE::DescriptorImageInfo26678     bool operator!=( DescriptorImageInfo const& rhs ) const
26679     {
26680       return !operator==( rhs );
26681     }
26682 
26683   public:
26684     vk::Sampler sampler;
26685     vk::ImageView imageView;
26686     vk::ImageLayout imageLayout;
26687   };
26688   static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
26689   static_assert( std::is_standard_layout<DescriptorImageInfo>::value, "struct wrapper is not a standard layout!" );
26690 
26691   struct DescriptorPoolSize
26692   {
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize26693     DescriptorPoolSize( vk::DescriptorType type_ = vk::DescriptorType::eSampler,
26694                         uint32_t descriptorCount_ = 0 )
26695         : type( type_ )
26696         , descriptorCount( descriptorCount_ )
26697     {}
26698 
DescriptorPoolSizeVULKAN_HPP_NAMESPACE::DescriptorPoolSize26699     DescriptorPoolSize( VkDescriptorPoolSize const & rhs )
26700     {
26701       *reinterpret_cast<VkDescriptorPoolSize*>(this) = rhs;
26702     }
26703 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolSize26704     DescriptorPoolSize& operator=( VkDescriptorPoolSize const & rhs )
26705     {
26706       *reinterpret_cast<VkDescriptorPoolSize*>(this) = rhs;
26707       return *this;
26708     }
26709 
setTypeVULKAN_HPP_NAMESPACE::DescriptorPoolSize26710     DescriptorPoolSize & setType( vk::DescriptorType type_ )
26711     {
26712       type = type_;
26713       return *this;
26714     }
26715 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorPoolSize26716     DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ )
26717     {
26718       descriptorCount = descriptorCount_;
26719       return *this;
26720     }
26721 
operator VkDescriptorPoolSize const&VULKAN_HPP_NAMESPACE::DescriptorPoolSize26722     operator VkDescriptorPoolSize const&() const
26723     {
26724       return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
26725     }
26726 
operator VkDescriptorPoolSize&VULKAN_HPP_NAMESPACE::DescriptorPoolSize26727     operator VkDescriptorPoolSize &()
26728     {
26729       return *reinterpret_cast<VkDescriptorPoolSize*>( this );
26730     }
26731 
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolSize26732     bool operator==( DescriptorPoolSize const& rhs ) const
26733     {
26734       return ( type == rhs.type )
26735           && ( descriptorCount == rhs.descriptorCount );
26736     }
26737 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolSize26738     bool operator!=( DescriptorPoolSize const& rhs ) const
26739     {
26740       return !operator==( rhs );
26741     }
26742 
26743   public:
26744     vk::DescriptorType type;
26745     uint32_t descriptorCount;
26746   };
26747   static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
26748   static_assert( std::is_standard_layout<DescriptorPoolSize>::value, "struct wrapper is not a standard layout!" );
26749 
26750   namespace layout
26751   {
26752     struct DescriptorPoolCreateInfo
26753     {
26754     protected:
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorPoolCreateInfo26755       DescriptorPoolCreateInfo( vk::DescriptorPoolCreateFlags flags_ = vk::DescriptorPoolCreateFlags(),
26756                                 uint32_t maxSets_ = 0,
26757                                 uint32_t poolSizeCount_ = 0,
26758                                 const vk::DescriptorPoolSize* pPoolSizes_ = nullptr )
26759         : flags( flags_ )
26760         , maxSets( maxSets_ )
26761         , poolSizeCount( poolSizeCount_ )
26762         , pPoolSizes( pPoolSizes_ )
26763       {}
26764 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorPoolCreateInfo26765       DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs )
26766       {
26767         *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this) = rhs;
26768       }
26769 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorPoolCreateInfo26770       DescriptorPoolCreateInfo& operator=( VkDescriptorPoolCreateInfo const & rhs )
26771       {
26772         *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this) = rhs;
26773         return *this;
26774       }
26775 
26776     public:
26777       vk::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
26778       const void* pNext = nullptr;
26779       vk::DescriptorPoolCreateFlags flags;
26780       uint32_t maxSets;
26781       uint32_t poolSizeCount;
26782       const vk::DescriptorPoolSize* pPoolSizes;
26783     };
26784     static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "layout struct and wrapper have different size!" );
26785   }
26786 
26787   struct DescriptorPoolCreateInfo : public layout::DescriptorPoolCreateInfo
26788   {
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26789     DescriptorPoolCreateInfo( vk::DescriptorPoolCreateFlags flags_ = vk::DescriptorPoolCreateFlags(),
26790                               uint32_t maxSets_ = 0,
26791                               uint32_t poolSizeCount_ = 0,
26792                               const vk::DescriptorPoolSize* pPoolSizes_ = nullptr )
26793       : layout::DescriptorPoolCreateInfo( flags_, maxSets_, poolSizeCount_, pPoolSizes_ )
26794     {}
26795 
DescriptorPoolCreateInfoVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26796     DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs )
26797       : layout::DescriptorPoolCreateInfo( rhs )
26798     {}
26799 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26800     DescriptorPoolCreateInfo& operator=( VkDescriptorPoolCreateInfo const & rhs )
26801     {
26802       *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this) = rhs;
26803       return *this;
26804     }
26805 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26806     DescriptorPoolCreateInfo & setPNext( const void* pNext_ )
26807     {
26808       pNext = pNext_;
26809       return *this;
26810     }
26811 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26812     DescriptorPoolCreateInfo & setFlags( vk::DescriptorPoolCreateFlags flags_ )
26813     {
26814       flags = flags_;
26815       return *this;
26816     }
26817 
setMaxSetsVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26818     DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ )
26819     {
26820       maxSets = maxSets_;
26821       return *this;
26822     }
26823 
setPoolSizeCountVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26824     DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ )
26825     {
26826       poolSizeCount = poolSizeCount_;
26827       return *this;
26828     }
26829 
setPPoolSizesVULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26830     DescriptorPoolCreateInfo & setPPoolSizes( const vk::DescriptorPoolSize* pPoolSizes_ )
26831     {
26832       pPoolSizes = pPoolSizes_;
26833       return *this;
26834     }
26835 
operator VkDescriptorPoolCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26836     operator VkDescriptorPoolCreateInfo const&() const
26837     {
26838       return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
26839     }
26840 
operator VkDescriptorPoolCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26841     operator VkDescriptorPoolCreateInfo &()
26842     {
26843       return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
26844     }
26845 
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26846     bool operator==( DescriptorPoolCreateInfo const& rhs ) const
26847     {
26848       return ( sType == rhs.sType )
26849           && ( pNext == rhs.pNext )
26850           && ( flags == rhs.flags )
26851           && ( maxSets == rhs.maxSets )
26852           && ( poolSizeCount == rhs.poolSizeCount )
26853           && ( pPoolSizes == rhs.pPoolSizes );
26854     }
26855 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo26856     bool operator!=( DescriptorPoolCreateInfo const& rhs ) const
26857     {
26858       return !operator==( rhs );
26859     }
26860 
26861   private:
26862     using layout::DescriptorPoolCreateInfo::sType;
26863   };
26864   static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
26865   static_assert( std::is_standard_layout<DescriptorPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
26866 
26867   namespace layout
26868   {
26869     struct DescriptorPoolInlineUniformBlockCreateInfoEXT
26870     {
26871     protected:
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorPoolInlineUniformBlockCreateInfoEXT26872       DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = 0 )
26873         : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
26874       {}
26875 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorPoolInlineUniformBlockCreateInfoEXT26876       DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
26877       {
26878         *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this) = rhs;
26879       }
26880 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorPoolInlineUniformBlockCreateInfoEXT26881       DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
26882       {
26883         *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this) = rhs;
26884         return *this;
26885       }
26886 
26887     public:
26888       vk::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
26889       const void* pNext = nullptr;
26890       uint32_t maxInlineUniformBlockBindings;
26891     };
26892     static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "layout struct and wrapper have different size!" );
26893   }
26894 
26895   struct DescriptorPoolInlineUniformBlockCreateInfoEXT : public layout::DescriptorPoolInlineUniformBlockCreateInfoEXT
26896   {
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26897     DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = 0 )
26898       : layout::DescriptorPoolInlineUniformBlockCreateInfoEXT( maxInlineUniformBlockBindings_ )
26899     {}
26900 
DescriptorPoolInlineUniformBlockCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26901     DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
26902       : layout::DescriptorPoolInlineUniformBlockCreateInfoEXT( rhs )
26903     {}
26904 
operator =VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26905     DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
26906     {
26907       *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this) = rhs;
26908       return *this;
26909     }
26910 
setPNextVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26911     DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ )
26912     {
26913       pNext = pNext_;
26914       return *this;
26915     }
26916 
setMaxInlineUniformBlockBindingsVULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26917     DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ )
26918     {
26919       maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
26920       return *this;
26921     }
26922 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26923     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const
26924     {
26925       return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
26926     }
26927 
operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26928     operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &()
26929     {
26930       return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
26931     }
26932 
operator ==VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26933     bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const
26934     {
26935       return ( sType == rhs.sType )
26936           && ( pNext == rhs.pNext )
26937           && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
26938     }
26939 
operator !=VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT26940     bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const
26941     {
26942       return !operator==( rhs );
26943     }
26944 
26945   private:
26946     using layout::DescriptorPoolInlineUniformBlockCreateInfoEXT::sType;
26947   };
26948   static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
26949   static_assert( std::is_standard_layout<DescriptorPoolInlineUniformBlockCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
26950 
26951   namespace layout
26952   {
26953     struct DescriptorSetAllocateInfo
26954     {
26955     protected:
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorSetAllocateInfo26956       DescriptorSetAllocateInfo( vk::DescriptorPool descriptorPool_ = vk::DescriptorPool(),
26957                                  uint32_t descriptorSetCount_ = 0,
26958                                  const vk::DescriptorSetLayout* pSetLayouts_ = nullptr )
26959         : descriptorPool( descriptorPool_ )
26960         , descriptorSetCount( descriptorSetCount_ )
26961         , pSetLayouts( pSetLayouts_ )
26962       {}
26963 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorSetAllocateInfo26964       DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs )
26965       {
26966         *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this) = rhs;
26967       }
26968 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetAllocateInfo26969       DescriptorSetAllocateInfo& operator=( VkDescriptorSetAllocateInfo const & rhs )
26970       {
26971         *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this) = rhs;
26972         return *this;
26973       }
26974 
26975     public:
26976       vk::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
26977       const void* pNext = nullptr;
26978       vk::DescriptorPool descriptorPool;
26979       uint32_t descriptorSetCount;
26980       const vk::DescriptorSetLayout* pSetLayouts;
26981     };
26982     static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "layout struct and wrapper have different size!" );
26983   }
26984 
26985   struct DescriptorSetAllocateInfo : public layout::DescriptorSetAllocateInfo
26986   {
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo26987     DescriptorSetAllocateInfo( vk::DescriptorPool descriptorPool_ = vk::DescriptorPool(),
26988                                uint32_t descriptorSetCount_ = 0,
26989                                const vk::DescriptorSetLayout* pSetLayouts_ = nullptr )
26990       : layout::DescriptorSetAllocateInfo( descriptorPool_, descriptorSetCount_, pSetLayouts_ )
26991     {}
26992 
DescriptorSetAllocateInfoVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo26993     DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs )
26994       : layout::DescriptorSetAllocateInfo( rhs )
26995     {}
26996 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo26997     DescriptorSetAllocateInfo& operator=( VkDescriptorSetAllocateInfo const & rhs )
26998     {
26999       *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this) = rhs;
27000       return *this;
27001     }
27002 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27003     DescriptorSetAllocateInfo & setPNext( const void* pNext_ )
27004     {
27005       pNext = pNext_;
27006       return *this;
27007     }
27008 
setDescriptorPoolVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27009     DescriptorSetAllocateInfo & setDescriptorPool( vk::DescriptorPool descriptorPool_ )
27010     {
27011       descriptorPool = descriptorPool_;
27012       return *this;
27013     }
27014 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27015     DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ )
27016     {
27017       descriptorSetCount = descriptorSetCount_;
27018       return *this;
27019     }
27020 
setPSetLayoutsVULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27021     DescriptorSetAllocateInfo & setPSetLayouts( const vk::DescriptorSetLayout* pSetLayouts_ )
27022     {
27023       pSetLayouts = pSetLayouts_;
27024       return *this;
27025     }
27026 
operator VkDescriptorSetAllocateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27027     operator VkDescriptorSetAllocateInfo const&() const
27028     {
27029       return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
27030     }
27031 
operator VkDescriptorSetAllocateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27032     operator VkDescriptorSetAllocateInfo &()
27033     {
27034       return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
27035     }
27036 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27037     bool operator==( DescriptorSetAllocateInfo const& rhs ) const
27038     {
27039       return ( sType == rhs.sType )
27040           && ( pNext == rhs.pNext )
27041           && ( descriptorPool == rhs.descriptorPool )
27042           && ( descriptorSetCount == rhs.descriptorSetCount )
27043           && ( pSetLayouts == rhs.pSetLayouts );
27044     }
27045 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo27046     bool operator!=( DescriptorSetAllocateInfo const& rhs ) const
27047     {
27048       return !operator==( rhs );
27049     }
27050 
27051   private:
27052     using layout::DescriptorSetAllocateInfo::sType;
27053   };
27054   static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
27055   static_assert( std::is_standard_layout<DescriptorSetAllocateInfo>::value, "struct wrapper is not a standard layout!" );
27056 
27057   struct DescriptorSetLayoutBinding
27058   {
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27059     DescriptorSetLayoutBinding( uint32_t binding_ = 0,
27060                                 vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
27061                                 uint32_t descriptorCount_ = 0,
27062                                 vk::ShaderStageFlags stageFlags_ = vk::ShaderStageFlags(),
27063                                 const vk::Sampler* pImmutableSamplers_ = nullptr )
27064         : binding( binding_ )
27065         , descriptorType( descriptorType_ )
27066         , descriptorCount( descriptorCount_ )
27067         , stageFlags( stageFlags_ )
27068         , pImmutableSamplers( pImmutableSamplers_ )
27069     {}
27070 
DescriptorSetLayoutBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27071     DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs )
27072     {
27073       *reinterpret_cast<VkDescriptorSetLayoutBinding*>(this) = rhs;
27074     }
27075 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27076     DescriptorSetLayoutBinding& operator=( VkDescriptorSetLayoutBinding const & rhs )
27077     {
27078       *reinterpret_cast<VkDescriptorSetLayoutBinding*>(this) = rhs;
27079       return *this;
27080     }
27081 
setBindingVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27082     DescriptorSetLayoutBinding & setBinding( uint32_t binding_ )
27083     {
27084       binding = binding_;
27085       return *this;
27086     }
27087 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27088     DescriptorSetLayoutBinding & setDescriptorType( vk::DescriptorType descriptorType_ )
27089     {
27090       descriptorType = descriptorType_;
27091       return *this;
27092     }
27093 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27094     DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ )
27095     {
27096       descriptorCount = descriptorCount_;
27097       return *this;
27098     }
27099 
setStageFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27100     DescriptorSetLayoutBinding & setStageFlags( vk::ShaderStageFlags stageFlags_ )
27101     {
27102       stageFlags = stageFlags_;
27103       return *this;
27104     }
27105 
setPImmutableSamplersVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27106     DescriptorSetLayoutBinding & setPImmutableSamplers( const vk::Sampler* pImmutableSamplers_ )
27107     {
27108       pImmutableSamplers = pImmutableSamplers_;
27109       return *this;
27110     }
27111 
operator VkDescriptorSetLayoutBinding const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27112     operator VkDescriptorSetLayoutBinding const&() const
27113     {
27114       return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
27115     }
27116 
operator VkDescriptorSetLayoutBinding&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27117     operator VkDescriptorSetLayoutBinding &()
27118     {
27119       return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
27120     }
27121 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27122     bool operator==( DescriptorSetLayoutBinding const& rhs ) const
27123     {
27124       return ( binding == rhs.binding )
27125           && ( descriptorType == rhs.descriptorType )
27126           && ( descriptorCount == rhs.descriptorCount )
27127           && ( stageFlags == rhs.stageFlags )
27128           && ( pImmutableSamplers == rhs.pImmutableSamplers );
27129     }
27130 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding27131     bool operator!=( DescriptorSetLayoutBinding const& rhs ) const
27132     {
27133       return !operator==( rhs );
27134     }
27135 
27136   public:
27137     uint32_t binding;
27138     vk::DescriptorType descriptorType;
27139     uint32_t descriptorCount;
27140     vk::ShaderStageFlags stageFlags;
27141     const vk::Sampler* pImmutableSamplers;
27142   };
27143   static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
27144   static_assert( std::is_standard_layout<DescriptorSetLayoutBinding>::value, "struct wrapper is not a standard layout!" );
27145 
27146   namespace layout
27147   {
27148     struct DescriptorSetLayoutBindingFlagsCreateInfoEXT
27149     {
27150     protected:
DescriptorSetLayoutBindingFlagsCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT27151       DescriptorSetLayoutBindingFlagsCreateInfoEXT( uint32_t bindingCount_ = 0,
27152                                                     const vk::DescriptorBindingFlagsEXT* pBindingFlags_ = nullptr )
27153         : bindingCount( bindingCount_ )
27154         , pBindingFlags( pBindingFlags_ )
27155       {}
27156 
DescriptorSetLayoutBindingFlagsCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT27157       DescriptorSetLayoutBindingFlagsCreateInfoEXT( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
27158       {
27159         *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this) = rhs;
27160       }
27161 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT27162       DescriptorSetLayoutBindingFlagsCreateInfoEXT& operator=( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
27163       {
27164         *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this) = rhs;
27165         return *this;
27166       }
27167 
27168     public:
27169       vk::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfoEXT;
27170       const void* pNext = nullptr;
27171       uint32_t bindingCount;
27172       const vk::DescriptorBindingFlagsEXT* pBindingFlags;
27173     };
27174     static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfoEXT ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT ), "layout struct and wrapper have different size!" );
27175   }
27176 
27177   struct DescriptorSetLayoutBindingFlagsCreateInfoEXT : public layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT
27178   {
DescriptorSetLayoutBindingFlagsCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27179     DescriptorSetLayoutBindingFlagsCreateInfoEXT( uint32_t bindingCount_ = 0,
27180                                                   const vk::DescriptorBindingFlagsEXT* pBindingFlags_ = nullptr )
27181       : layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT( bindingCount_, pBindingFlags_ )
27182     {}
27183 
DescriptorSetLayoutBindingFlagsCreateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27184     DescriptorSetLayoutBindingFlagsCreateInfoEXT( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
27185       : layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT( rhs )
27186     {}
27187 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27188     DescriptorSetLayoutBindingFlagsCreateInfoEXT& operator=( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
27189     {
27190       *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this) = rhs;
27191       return *this;
27192     }
27193 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27194     DescriptorSetLayoutBindingFlagsCreateInfoEXT & setPNext( const void* pNext_ )
27195     {
27196       pNext = pNext_;
27197       return *this;
27198     }
27199 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27200     DescriptorSetLayoutBindingFlagsCreateInfoEXT & setBindingCount( uint32_t bindingCount_ )
27201     {
27202       bindingCount = bindingCount_;
27203       return *this;
27204     }
27205 
setPBindingFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27206     DescriptorSetLayoutBindingFlagsCreateInfoEXT & setPBindingFlags( const vk::DescriptorBindingFlagsEXT* pBindingFlags_ )
27207     {
27208       pBindingFlags = pBindingFlags_;
27209       return *this;
27210     }
27211 
operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27212     operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const&() const
27213     {
27214       return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>( this );
27215     }
27216 
operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27217     operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT &()
27218     {
27219       return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>( this );
27220     }
27221 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27222     bool operator==( DescriptorSetLayoutBindingFlagsCreateInfoEXT const& rhs ) const
27223     {
27224       return ( sType == rhs.sType )
27225           && ( pNext == rhs.pNext )
27226           && ( bindingCount == rhs.bindingCount )
27227           && ( pBindingFlags == rhs.pBindingFlags );
27228     }
27229 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfoEXT27230     bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfoEXT const& rhs ) const
27231     {
27232       return !operator==( rhs );
27233     }
27234 
27235   private:
27236     using layout::DescriptorSetLayoutBindingFlagsCreateInfoEXT::sType;
27237   };
27238   static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfoEXT ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT ), "struct and wrapper have different size!" );
27239   static_assert( std::is_standard_layout<DescriptorSetLayoutBindingFlagsCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27240 
27241   namespace layout
27242   {
27243     struct DescriptorSetLayoutCreateInfo
27244     {
27245     protected:
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutCreateInfo27246       DescriptorSetLayoutCreateInfo( vk::DescriptorSetLayoutCreateFlags flags_ = vk::DescriptorSetLayoutCreateFlags(),
27247                                      uint32_t bindingCount_ = 0,
27248                                      const vk::DescriptorSetLayoutBinding* pBindings_ = nullptr )
27249         : flags( flags_ )
27250         , bindingCount( bindingCount_ )
27251         , pBindings( pBindings_ )
27252       {}
27253 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutCreateInfo27254       DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs )
27255       {
27256         *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this) = rhs;
27257       }
27258 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutCreateInfo27259       DescriptorSetLayoutCreateInfo& operator=( VkDescriptorSetLayoutCreateInfo const & rhs )
27260       {
27261         *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this) = rhs;
27262         return *this;
27263       }
27264 
27265     public:
27266       vk::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
27267       const void* pNext = nullptr;
27268       vk::DescriptorSetLayoutCreateFlags flags;
27269       uint32_t bindingCount;
27270       const vk::DescriptorSetLayoutBinding* pBindings;
27271     };
27272     static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "layout struct and wrapper have different size!" );
27273   }
27274 
27275   struct DescriptorSetLayoutCreateInfo : public layout::DescriptorSetLayoutCreateInfo
27276   {
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27277     DescriptorSetLayoutCreateInfo( vk::DescriptorSetLayoutCreateFlags flags_ = vk::DescriptorSetLayoutCreateFlags(),
27278                                    uint32_t bindingCount_ = 0,
27279                                    const vk::DescriptorSetLayoutBinding* pBindings_ = nullptr )
27280       : layout::DescriptorSetLayoutCreateInfo( flags_, bindingCount_, pBindings_ )
27281     {}
27282 
DescriptorSetLayoutCreateInfoVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27283     DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs )
27284       : layout::DescriptorSetLayoutCreateInfo( rhs )
27285     {}
27286 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27287     DescriptorSetLayoutCreateInfo& operator=( VkDescriptorSetLayoutCreateInfo const & rhs )
27288     {
27289       *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this) = rhs;
27290       return *this;
27291     }
27292 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27293     DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ )
27294     {
27295       pNext = pNext_;
27296       return *this;
27297     }
27298 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27299     DescriptorSetLayoutCreateInfo & setFlags( vk::DescriptorSetLayoutCreateFlags flags_ )
27300     {
27301       flags = flags_;
27302       return *this;
27303     }
27304 
setBindingCountVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27305     DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ )
27306     {
27307       bindingCount = bindingCount_;
27308       return *this;
27309     }
27310 
setPBindingsVULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27311     DescriptorSetLayoutCreateInfo & setPBindings( const vk::DescriptorSetLayoutBinding* pBindings_ )
27312     {
27313       pBindings = pBindings_;
27314       return *this;
27315     }
27316 
operator VkDescriptorSetLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27317     operator VkDescriptorSetLayoutCreateInfo const&() const
27318     {
27319       return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
27320     }
27321 
operator VkDescriptorSetLayoutCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27322     operator VkDescriptorSetLayoutCreateInfo &()
27323     {
27324       return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
27325     }
27326 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27327     bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const
27328     {
27329       return ( sType == rhs.sType )
27330           && ( pNext == rhs.pNext )
27331           && ( flags == rhs.flags )
27332           && ( bindingCount == rhs.bindingCount )
27333           && ( pBindings == rhs.pBindings );
27334     }
27335 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo27336     bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const
27337     {
27338       return !operator==( rhs );
27339     }
27340 
27341   private:
27342     using layout::DescriptorSetLayoutCreateInfo::sType;
27343   };
27344   static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
27345   static_assert( std::is_standard_layout<DescriptorSetLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
27346 
27347   namespace layout
27348   {
27349     struct DescriptorSetLayoutSupport
27350     {
27351     protected:
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutSupport27352       DescriptorSetLayoutSupport( vk::Bool32 supported_ = 0 )
27353         : supported( supported_ )
27354       {}
27355 
DescriptorSetLayoutSupportVULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutSupport27356       DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs )
27357       {
27358         *reinterpret_cast<VkDescriptorSetLayoutSupport*>(this) = rhs;
27359       }
27360 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetLayoutSupport27361       DescriptorSetLayoutSupport& operator=( VkDescriptorSetLayoutSupport const & rhs )
27362       {
27363         *reinterpret_cast<VkDescriptorSetLayoutSupport*>(this) = rhs;
27364         return *this;
27365       }
27366 
27367     public:
27368       vk::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
27369       void* pNext = nullptr;
27370       vk::Bool32 supported;
27371     };
27372     static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "layout struct and wrapper have different size!" );
27373   }
27374 
27375   struct DescriptorSetLayoutSupport : public layout::DescriptorSetLayoutSupport
27376   {
operator VkDescriptorSetLayoutSupport const&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport27377     operator VkDescriptorSetLayoutSupport const&() const
27378     {
27379       return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
27380     }
27381 
operator VkDescriptorSetLayoutSupport&VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport27382     operator VkDescriptorSetLayoutSupport &()
27383     {
27384       return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
27385     }
27386 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport27387     bool operator==( DescriptorSetLayoutSupport const& rhs ) const
27388     {
27389       return ( sType == rhs.sType )
27390           && ( pNext == rhs.pNext )
27391           && ( supported == rhs.supported );
27392     }
27393 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport27394     bool operator!=( DescriptorSetLayoutSupport const& rhs ) const
27395     {
27396       return !operator==( rhs );
27397     }
27398 
27399   private:
27400     using layout::DescriptorSetLayoutSupport::sType;
27401   };
27402   static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
27403   static_assert( std::is_standard_layout<DescriptorSetLayoutSupport>::value, "struct wrapper is not a standard layout!" );
27404 
27405   namespace layout
27406   {
27407     struct DescriptorSetVariableDescriptorCountAllocateInfoEXT
27408     {
27409     protected:
DescriptorSetVariableDescriptorCountAllocateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT27410       DescriptorSetVariableDescriptorCountAllocateInfoEXT( uint32_t descriptorSetCount_ = 0,
27411                                                            const uint32_t* pDescriptorCounts_ = nullptr )
27412         : descriptorSetCount( descriptorSetCount_ )
27413         , pDescriptorCounts( pDescriptorCounts_ )
27414       {}
27415 
DescriptorSetVariableDescriptorCountAllocateInfoEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT27416       DescriptorSetVariableDescriptorCountAllocateInfoEXT( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
27417       {
27418         *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this) = rhs;
27419       }
27420 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT27421       DescriptorSetVariableDescriptorCountAllocateInfoEXT& operator=( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
27422       {
27423         *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this) = rhs;
27424         return *this;
27425       }
27426 
27427     public:
27428       vk::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfoEXT;
27429       const void* pNext = nullptr;
27430       uint32_t descriptorSetCount;
27431       const uint32_t* pDescriptorCounts;
27432     };
27433     static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfoEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT ), "layout struct and wrapper have different size!" );
27434   }
27435 
27436   struct DescriptorSetVariableDescriptorCountAllocateInfoEXT : public layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT
27437   {
DescriptorSetVariableDescriptorCountAllocateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27438     DescriptorSetVariableDescriptorCountAllocateInfoEXT( uint32_t descriptorSetCount_ = 0,
27439                                                          const uint32_t* pDescriptorCounts_ = nullptr )
27440       : layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT( descriptorSetCount_, pDescriptorCounts_ )
27441     {}
27442 
DescriptorSetVariableDescriptorCountAllocateInfoEXTVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27443     DescriptorSetVariableDescriptorCountAllocateInfoEXT( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
27444       : layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT( rhs )
27445     {}
27446 
operator =VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27447     DescriptorSetVariableDescriptorCountAllocateInfoEXT& operator=( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
27448     {
27449       *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this) = rhs;
27450       return *this;
27451     }
27452 
setPNextVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27453     DescriptorSetVariableDescriptorCountAllocateInfoEXT & setPNext( const void* pNext_ )
27454     {
27455       pNext = pNext_;
27456       return *this;
27457     }
27458 
setDescriptorSetCountVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27459     DescriptorSetVariableDescriptorCountAllocateInfoEXT & setDescriptorSetCount( uint32_t descriptorSetCount_ )
27460     {
27461       descriptorSetCount = descriptorSetCount_;
27462       return *this;
27463     }
27464 
setPDescriptorCountsVULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27465     DescriptorSetVariableDescriptorCountAllocateInfoEXT & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ )
27466     {
27467       pDescriptorCounts = pDescriptorCounts_;
27468       return *this;
27469     }
27470 
operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27471     operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const&() const
27472     {
27473       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>( this );
27474     }
27475 
operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27476     operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT &()
27477     {
27478       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>( this );
27479     }
27480 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27481     bool operator==( DescriptorSetVariableDescriptorCountAllocateInfoEXT const& rhs ) const
27482     {
27483       return ( sType == rhs.sType )
27484           && ( pNext == rhs.pNext )
27485           && ( descriptorSetCount == rhs.descriptorSetCount )
27486           && ( pDescriptorCounts == rhs.pDescriptorCounts );
27487     }
27488 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfoEXT27489     bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfoEXT const& rhs ) const
27490     {
27491       return !operator==( rhs );
27492     }
27493 
27494   private:
27495     using layout::DescriptorSetVariableDescriptorCountAllocateInfoEXT::sType;
27496   };
27497   static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfoEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT ), "struct and wrapper have different size!" );
27498   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
27499 
27500   namespace layout
27501   {
27502     struct DescriptorSetVariableDescriptorCountLayoutSupportEXT
27503     {
27504     protected:
DescriptorSetVariableDescriptorCountLayoutSupportEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountLayoutSupportEXT27505       DescriptorSetVariableDescriptorCountLayoutSupportEXT( uint32_t maxVariableDescriptorCount_ = 0 )
27506         : maxVariableDescriptorCount( maxVariableDescriptorCount_ )
27507       {}
27508 
DescriptorSetVariableDescriptorCountLayoutSupportEXTVULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountLayoutSupportEXT27509       DescriptorSetVariableDescriptorCountLayoutSupportEXT( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const & rhs )
27510       {
27511         *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(this) = rhs;
27512       }
27513 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorSetVariableDescriptorCountLayoutSupportEXT27514       DescriptorSetVariableDescriptorCountLayoutSupportEXT& operator=( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const & rhs )
27515       {
27516         *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(this) = rhs;
27517         return *this;
27518       }
27519 
27520     public:
27521       vk::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupportEXT;
27522       void* pNext = nullptr;
27523       uint32_t maxVariableDescriptorCount;
27524     };
27525     static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupportEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT ), "layout struct and wrapper have different size!" );
27526   }
27527 
27528   struct DescriptorSetVariableDescriptorCountLayoutSupportEXT : public layout::DescriptorSetVariableDescriptorCountLayoutSupportEXT
27529   {
operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupportEXT27530     operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const&() const
27531     {
27532       return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>( this );
27533     }
27534 
operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT&VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupportEXT27535     operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT &()
27536     {
27537       return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>( this );
27538     }
27539 
operator ==VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupportEXT27540     bool operator==( DescriptorSetVariableDescriptorCountLayoutSupportEXT const& rhs ) const
27541     {
27542       return ( sType == rhs.sType )
27543           && ( pNext == rhs.pNext )
27544           && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
27545     }
27546 
operator !=VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupportEXT27547     bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupportEXT const& rhs ) const
27548     {
27549       return !operator==( rhs );
27550     }
27551 
27552   private:
27553     using layout::DescriptorSetVariableDescriptorCountLayoutSupportEXT::sType;
27554   };
27555   static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupportEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT ), "struct and wrapper have different size!" );
27556   static_assert( std::is_standard_layout<DescriptorSetVariableDescriptorCountLayoutSupportEXT>::value, "struct wrapper is not a standard layout!" );
27557 
27558   struct DescriptorUpdateTemplateEntry
27559   {
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27560     DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = 0,
27561                                    uint32_t dstArrayElement_ = 0,
27562                                    uint32_t descriptorCount_ = 0,
27563                                    vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
27564                                    size_t offset_ = 0,
27565                                    size_t stride_ = 0 )
27566         : dstBinding( dstBinding_ )
27567         , dstArrayElement( dstArrayElement_ )
27568         , descriptorCount( descriptorCount_ )
27569         , descriptorType( descriptorType_ )
27570         , offset( offset_ )
27571         , stride( stride_ )
27572     {}
27573 
DescriptorUpdateTemplateEntryVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27574     DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs )
27575     {
27576       *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>(this) = rhs;
27577     }
27578 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27579     DescriptorUpdateTemplateEntry& operator=( VkDescriptorUpdateTemplateEntry const & rhs )
27580     {
27581       *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>(this) = rhs;
27582       return *this;
27583     }
27584 
setDstBindingVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27585     DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ )
27586     {
27587       dstBinding = dstBinding_;
27588       return *this;
27589     }
27590 
setDstArrayElementVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27591     DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ )
27592     {
27593       dstArrayElement = dstArrayElement_;
27594       return *this;
27595     }
27596 
setDescriptorCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27597     DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ )
27598     {
27599       descriptorCount = descriptorCount_;
27600       return *this;
27601     }
27602 
setDescriptorTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27603     DescriptorUpdateTemplateEntry & setDescriptorType( vk::DescriptorType descriptorType_ )
27604     {
27605       descriptorType = descriptorType_;
27606       return *this;
27607     }
27608 
setOffsetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27609     DescriptorUpdateTemplateEntry & setOffset( size_t offset_ )
27610     {
27611       offset = offset_;
27612       return *this;
27613     }
27614 
setStrideVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27615     DescriptorUpdateTemplateEntry & setStride( size_t stride_ )
27616     {
27617       stride = stride_;
27618       return *this;
27619     }
27620 
operator VkDescriptorUpdateTemplateEntry const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27621     operator VkDescriptorUpdateTemplateEntry const&() const
27622     {
27623       return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
27624     }
27625 
operator VkDescriptorUpdateTemplateEntry&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27626     operator VkDescriptorUpdateTemplateEntry &()
27627     {
27628       return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
27629     }
27630 
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27631     bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const
27632     {
27633       return ( dstBinding == rhs.dstBinding )
27634           && ( dstArrayElement == rhs.dstArrayElement )
27635           && ( descriptorCount == rhs.descriptorCount )
27636           && ( descriptorType == rhs.descriptorType )
27637           && ( offset == rhs.offset )
27638           && ( stride == rhs.stride );
27639     }
27640 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry27641     bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const
27642     {
27643       return !operator==( rhs );
27644     }
27645 
27646   public:
27647     uint32_t dstBinding;
27648     uint32_t dstArrayElement;
27649     uint32_t descriptorCount;
27650     vk::DescriptorType descriptorType;
27651     size_t offset;
27652     size_t stride;
27653   };
27654   static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
27655   static_assert( std::is_standard_layout<DescriptorUpdateTemplateEntry>::value, "struct wrapper is not a standard layout!" );
27656 
27657   namespace layout
27658   {
27659     struct DescriptorUpdateTemplateCreateInfo
27660     {
27661     protected:
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorUpdateTemplateCreateInfo27662       DescriptorUpdateTemplateCreateInfo( vk::DescriptorUpdateTemplateCreateFlags flags_ = vk::DescriptorUpdateTemplateCreateFlags(),
27663                                           uint32_t descriptorUpdateEntryCount_ = 0,
27664                                           const vk::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = nullptr,
27665                                           vk::DescriptorUpdateTemplateType templateType_ = vk::DescriptorUpdateTemplateType::eDescriptorSet,
27666                                           vk::DescriptorSetLayout descriptorSetLayout_ = vk::DescriptorSetLayout(),
27667                                           vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
27668                                           vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
27669                                           uint32_t set_ = 0 )
27670         : flags( flags_ )
27671         , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
27672         , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
27673         , templateType( templateType_ )
27674         , descriptorSetLayout( descriptorSetLayout_ )
27675         , pipelineBindPoint( pipelineBindPoint_ )
27676         , pipelineLayout( pipelineLayout_ )
27677         , set( set_ )
27678       {}
27679 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::layout::DescriptorUpdateTemplateCreateInfo27680       DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs )
27681       {
27682         *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this) = rhs;
27683       }
27684 
operator =VULKAN_HPP_NAMESPACE::layout::DescriptorUpdateTemplateCreateInfo27685       DescriptorUpdateTemplateCreateInfo& operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs )
27686       {
27687         *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this) = rhs;
27688         return *this;
27689       }
27690 
27691     public:
27692       vk::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
27693       const void* pNext = nullptr;
27694       vk::DescriptorUpdateTemplateCreateFlags flags;
27695       uint32_t descriptorUpdateEntryCount;
27696       const vk::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
27697       vk::DescriptorUpdateTemplateType templateType;
27698       vk::DescriptorSetLayout descriptorSetLayout;
27699       vk::PipelineBindPoint pipelineBindPoint;
27700       vk::PipelineLayout pipelineLayout;
27701       uint32_t set;
27702     };
27703     static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "layout struct and wrapper have different size!" );
27704   }
27705 
27706   struct DescriptorUpdateTemplateCreateInfo : public layout::DescriptorUpdateTemplateCreateInfo
27707   {
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27708     DescriptorUpdateTemplateCreateInfo( vk::DescriptorUpdateTemplateCreateFlags flags_ = vk::DescriptorUpdateTemplateCreateFlags(),
27709                                         uint32_t descriptorUpdateEntryCount_ = 0,
27710                                         const vk::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = nullptr,
27711                                         vk::DescriptorUpdateTemplateType templateType_ = vk::DescriptorUpdateTemplateType::eDescriptorSet,
27712                                         vk::DescriptorSetLayout descriptorSetLayout_ = vk::DescriptorSetLayout(),
27713                                         vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
27714                                         vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
27715                                         uint32_t set_ = 0 )
27716       : layout::DescriptorUpdateTemplateCreateInfo( flags_, descriptorUpdateEntryCount_, pDescriptorUpdateEntries_, templateType_, descriptorSetLayout_, pipelineBindPoint_, pipelineLayout_, set_ )
27717     {}
27718 
DescriptorUpdateTemplateCreateInfoVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27719     DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs )
27720       : layout::DescriptorUpdateTemplateCreateInfo( rhs )
27721     {}
27722 
operator =VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27723     DescriptorUpdateTemplateCreateInfo& operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs )
27724     {
27725       *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this) = rhs;
27726       return *this;
27727     }
27728 
setPNextVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27729     DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ )
27730     {
27731       pNext = pNext_;
27732       return *this;
27733     }
27734 
setFlagsVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27735     DescriptorUpdateTemplateCreateInfo & setFlags( vk::DescriptorUpdateTemplateCreateFlags flags_ )
27736     {
27737       flags = flags_;
27738       return *this;
27739     }
27740 
setDescriptorUpdateEntryCountVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27741     DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ )
27742     {
27743       descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
27744       return *this;
27745     }
27746 
setPDescriptorUpdateEntriesVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27747     DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const vk::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ )
27748     {
27749       pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
27750       return *this;
27751     }
27752 
setTemplateTypeVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27753     DescriptorUpdateTemplateCreateInfo & setTemplateType( vk::DescriptorUpdateTemplateType templateType_ )
27754     {
27755       templateType = templateType_;
27756       return *this;
27757     }
27758 
setDescriptorSetLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27759     DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( vk::DescriptorSetLayout descriptorSetLayout_ )
27760     {
27761       descriptorSetLayout = descriptorSetLayout_;
27762       return *this;
27763     }
27764 
setPipelineBindPointVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27765     DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( vk::PipelineBindPoint pipelineBindPoint_ )
27766     {
27767       pipelineBindPoint = pipelineBindPoint_;
27768       return *this;
27769     }
27770 
setPipelineLayoutVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27771     DescriptorUpdateTemplateCreateInfo & setPipelineLayout( vk::PipelineLayout pipelineLayout_ )
27772     {
27773       pipelineLayout = pipelineLayout_;
27774       return *this;
27775     }
27776 
setSetVULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27777     DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ )
27778     {
27779       set = set_;
27780       return *this;
27781     }
27782 
operator VkDescriptorUpdateTemplateCreateInfo const&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27783     operator VkDescriptorUpdateTemplateCreateInfo const&() const
27784     {
27785       return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
27786     }
27787 
operator VkDescriptorUpdateTemplateCreateInfo&VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27788     operator VkDescriptorUpdateTemplateCreateInfo &()
27789     {
27790       return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
27791     }
27792 
operator ==VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27793     bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const
27794     {
27795       return ( sType == rhs.sType )
27796           && ( pNext == rhs.pNext )
27797           && ( flags == rhs.flags )
27798           && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
27799           && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
27800           && ( templateType == rhs.templateType )
27801           && ( descriptorSetLayout == rhs.descriptorSetLayout )
27802           && ( pipelineBindPoint == rhs.pipelineBindPoint )
27803           && ( pipelineLayout == rhs.pipelineLayout )
27804           && ( set == rhs.set );
27805     }
27806 
operator !=VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo27807     bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const
27808     {
27809       return !operator==( rhs );
27810     }
27811 
27812   private:
27813     using layout::DescriptorUpdateTemplateCreateInfo::sType;
27814   };
27815   static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
27816   static_assert( std::is_standard_layout<DescriptorUpdateTemplateCreateInfo>::value, "struct wrapper is not a standard layout!" );
27817 
27818   namespace layout
27819   {
27820     struct DeviceQueueCreateInfo
27821     {
27822     protected:
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceQueueCreateInfo27823       DeviceQueueCreateInfo( vk::DeviceQueueCreateFlags flags_ = vk::DeviceQueueCreateFlags(),
27824                              uint32_t queueFamilyIndex_ = 0,
27825                              uint32_t queueCount_ = 0,
27826                              const float* pQueuePriorities_ = nullptr )
27827         : flags( flags_ )
27828         , queueFamilyIndex( queueFamilyIndex_ )
27829         , queueCount( queueCount_ )
27830         , pQueuePriorities( pQueuePriorities_ )
27831       {}
27832 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceQueueCreateInfo27833       DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs )
27834       {
27835         *reinterpret_cast<VkDeviceQueueCreateInfo*>(this) = rhs;
27836       }
27837 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceQueueCreateInfo27838       DeviceQueueCreateInfo& operator=( VkDeviceQueueCreateInfo const & rhs )
27839       {
27840         *reinterpret_cast<VkDeviceQueueCreateInfo*>(this) = rhs;
27841         return *this;
27842       }
27843 
27844     public:
27845       vk::StructureType sType = StructureType::eDeviceQueueCreateInfo;
27846       const void* pNext = nullptr;
27847       vk::DeviceQueueCreateFlags flags;
27848       uint32_t queueFamilyIndex;
27849       uint32_t queueCount;
27850       const float* pQueuePriorities;
27851     };
27852     static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "layout struct and wrapper have different size!" );
27853   }
27854 
27855   struct DeviceQueueCreateInfo : public layout::DeviceQueueCreateInfo
27856   {
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27857     DeviceQueueCreateInfo( vk::DeviceQueueCreateFlags flags_ = vk::DeviceQueueCreateFlags(),
27858                            uint32_t queueFamilyIndex_ = 0,
27859                            uint32_t queueCount_ = 0,
27860                            const float* pQueuePriorities_ = nullptr )
27861       : layout::DeviceQueueCreateInfo( flags_, queueFamilyIndex_, queueCount_, pQueuePriorities_ )
27862     {}
27863 
DeviceQueueCreateInfoVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27864     DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs )
27865       : layout::DeviceQueueCreateInfo( rhs )
27866     {}
27867 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27868     DeviceQueueCreateInfo& operator=( VkDeviceQueueCreateInfo const & rhs )
27869     {
27870       *reinterpret_cast<VkDeviceQueueCreateInfo*>(this) = rhs;
27871       return *this;
27872     }
27873 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27874     DeviceQueueCreateInfo & setPNext( const void* pNext_ )
27875     {
27876       pNext = pNext_;
27877       return *this;
27878     }
27879 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27880     DeviceQueueCreateInfo & setFlags( vk::DeviceQueueCreateFlags flags_ )
27881     {
27882       flags = flags_;
27883       return *this;
27884     }
27885 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27886     DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
27887     {
27888       queueFamilyIndex = queueFamilyIndex_;
27889       return *this;
27890     }
27891 
setQueueCountVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27892     DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ )
27893     {
27894       queueCount = queueCount_;
27895       return *this;
27896     }
27897 
setPQueuePrioritiesVULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27898     DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ )
27899     {
27900       pQueuePriorities = pQueuePriorities_;
27901       return *this;
27902     }
27903 
operator VkDeviceQueueCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27904     operator VkDeviceQueueCreateInfo const&() const
27905     {
27906       return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
27907     }
27908 
operator VkDeviceQueueCreateInfo&VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27909     operator VkDeviceQueueCreateInfo &()
27910     {
27911       return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
27912     }
27913 
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27914     bool operator==( DeviceQueueCreateInfo const& rhs ) const
27915     {
27916       return ( sType == rhs.sType )
27917           && ( pNext == rhs.pNext )
27918           && ( flags == rhs.flags )
27919           && ( queueFamilyIndex == rhs.queueFamilyIndex )
27920           && ( queueCount == rhs.queueCount )
27921           && ( pQueuePriorities == rhs.pQueuePriorities );
27922     }
27923 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo27924     bool operator!=( DeviceQueueCreateInfo const& rhs ) const
27925     {
27926       return !operator==( rhs );
27927     }
27928 
27929   private:
27930     using layout::DeviceQueueCreateInfo::sType;
27931   };
27932   static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
27933   static_assert( std::is_standard_layout<DeviceQueueCreateInfo>::value, "struct wrapper is not a standard layout!" );
27934 
27935   struct PhysicalDeviceFeatures
27936   {
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures27937     PhysicalDeviceFeatures( vk::Bool32 robustBufferAccess_ = 0,
27938                             vk::Bool32 fullDrawIndexUint32_ = 0,
27939                             vk::Bool32 imageCubeArray_ = 0,
27940                             vk::Bool32 independentBlend_ = 0,
27941                             vk::Bool32 geometryShader_ = 0,
27942                             vk::Bool32 tessellationShader_ = 0,
27943                             vk::Bool32 sampleRateShading_ = 0,
27944                             vk::Bool32 dualSrcBlend_ = 0,
27945                             vk::Bool32 logicOp_ = 0,
27946                             vk::Bool32 multiDrawIndirect_ = 0,
27947                             vk::Bool32 drawIndirectFirstInstance_ = 0,
27948                             vk::Bool32 depthClamp_ = 0,
27949                             vk::Bool32 depthBiasClamp_ = 0,
27950                             vk::Bool32 fillModeNonSolid_ = 0,
27951                             vk::Bool32 depthBounds_ = 0,
27952                             vk::Bool32 wideLines_ = 0,
27953                             vk::Bool32 largePoints_ = 0,
27954                             vk::Bool32 alphaToOne_ = 0,
27955                             vk::Bool32 multiViewport_ = 0,
27956                             vk::Bool32 samplerAnisotropy_ = 0,
27957                             vk::Bool32 textureCompressionETC2_ = 0,
27958                             vk::Bool32 textureCompressionASTC_LDR_ = 0,
27959                             vk::Bool32 textureCompressionBC_ = 0,
27960                             vk::Bool32 occlusionQueryPrecise_ = 0,
27961                             vk::Bool32 pipelineStatisticsQuery_ = 0,
27962                             vk::Bool32 vertexPipelineStoresAndAtomics_ = 0,
27963                             vk::Bool32 fragmentStoresAndAtomics_ = 0,
27964                             vk::Bool32 shaderTessellationAndGeometryPointSize_ = 0,
27965                             vk::Bool32 shaderImageGatherExtended_ = 0,
27966                             vk::Bool32 shaderStorageImageExtendedFormats_ = 0,
27967                             vk::Bool32 shaderStorageImageMultisample_ = 0,
27968                             vk::Bool32 shaderStorageImageReadWithoutFormat_ = 0,
27969                             vk::Bool32 shaderStorageImageWriteWithoutFormat_ = 0,
27970                             vk::Bool32 shaderUniformBufferArrayDynamicIndexing_ = 0,
27971                             vk::Bool32 shaderSampledImageArrayDynamicIndexing_ = 0,
27972                             vk::Bool32 shaderStorageBufferArrayDynamicIndexing_ = 0,
27973                             vk::Bool32 shaderStorageImageArrayDynamicIndexing_ = 0,
27974                             vk::Bool32 shaderClipDistance_ = 0,
27975                             vk::Bool32 shaderCullDistance_ = 0,
27976                             vk::Bool32 shaderFloat64_ = 0,
27977                             vk::Bool32 shaderInt64_ = 0,
27978                             vk::Bool32 shaderInt16_ = 0,
27979                             vk::Bool32 shaderResourceResidency_ = 0,
27980                             vk::Bool32 shaderResourceMinLod_ = 0,
27981                             vk::Bool32 sparseBinding_ = 0,
27982                             vk::Bool32 sparseResidencyBuffer_ = 0,
27983                             vk::Bool32 sparseResidencyImage2D_ = 0,
27984                             vk::Bool32 sparseResidencyImage3D_ = 0,
27985                             vk::Bool32 sparseResidency2Samples_ = 0,
27986                             vk::Bool32 sparseResidency4Samples_ = 0,
27987                             vk::Bool32 sparseResidency8Samples_ = 0,
27988                             vk::Bool32 sparseResidency16Samples_ = 0,
27989                             vk::Bool32 sparseResidencyAliased_ = 0,
27990                             vk::Bool32 variableMultisampleRate_ = 0,
27991                             vk::Bool32 inheritedQueries_ = 0 )
27992         : robustBufferAccess( robustBufferAccess_ )
27993         , fullDrawIndexUint32( fullDrawIndexUint32_ )
27994         , imageCubeArray( imageCubeArray_ )
27995         , independentBlend( independentBlend_ )
27996         , geometryShader( geometryShader_ )
27997         , tessellationShader( tessellationShader_ )
27998         , sampleRateShading( sampleRateShading_ )
27999         , dualSrcBlend( dualSrcBlend_ )
28000         , logicOp( logicOp_ )
28001         , multiDrawIndirect( multiDrawIndirect_ )
28002         , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
28003         , depthClamp( depthClamp_ )
28004         , depthBiasClamp( depthBiasClamp_ )
28005         , fillModeNonSolid( fillModeNonSolid_ )
28006         , depthBounds( depthBounds_ )
28007         , wideLines( wideLines_ )
28008         , largePoints( largePoints_ )
28009         , alphaToOne( alphaToOne_ )
28010         , multiViewport( multiViewport_ )
28011         , samplerAnisotropy( samplerAnisotropy_ )
28012         , textureCompressionETC2( textureCompressionETC2_ )
28013         , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
28014         , textureCompressionBC( textureCompressionBC_ )
28015         , occlusionQueryPrecise( occlusionQueryPrecise_ )
28016         , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
28017         , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
28018         , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
28019         , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
28020         , shaderImageGatherExtended( shaderImageGatherExtended_ )
28021         , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
28022         , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
28023         , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
28024         , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
28025         , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
28026         , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
28027         , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
28028         , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
28029         , shaderClipDistance( shaderClipDistance_ )
28030         , shaderCullDistance( shaderCullDistance_ )
28031         , shaderFloat64( shaderFloat64_ )
28032         , shaderInt64( shaderInt64_ )
28033         , shaderInt16( shaderInt16_ )
28034         , shaderResourceResidency( shaderResourceResidency_ )
28035         , shaderResourceMinLod( shaderResourceMinLod_ )
28036         , sparseBinding( sparseBinding_ )
28037         , sparseResidencyBuffer( sparseResidencyBuffer_ )
28038         , sparseResidencyImage2D( sparseResidencyImage2D_ )
28039         , sparseResidencyImage3D( sparseResidencyImage3D_ )
28040         , sparseResidency2Samples( sparseResidency2Samples_ )
28041         , sparseResidency4Samples( sparseResidency4Samples_ )
28042         , sparseResidency8Samples( sparseResidency8Samples_ )
28043         , sparseResidency16Samples( sparseResidency16Samples_ )
28044         , sparseResidencyAliased( sparseResidencyAliased_ )
28045         , variableMultisampleRate( variableMultisampleRate_ )
28046         , inheritedQueries( inheritedQueries_ )
28047     {}
28048 
PhysicalDeviceFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28049     PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs )
28050     {
28051       *reinterpret_cast<VkPhysicalDeviceFeatures*>(this) = rhs;
28052     }
28053 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28054     PhysicalDeviceFeatures& operator=( VkPhysicalDeviceFeatures const & rhs )
28055     {
28056       *reinterpret_cast<VkPhysicalDeviceFeatures*>(this) = rhs;
28057       return *this;
28058     }
28059 
setRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28060     PhysicalDeviceFeatures & setRobustBufferAccess( vk::Bool32 robustBufferAccess_ )
28061     {
28062       robustBufferAccess = robustBufferAccess_;
28063       return *this;
28064     }
28065 
setFullDrawIndexUint32VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28066     PhysicalDeviceFeatures & setFullDrawIndexUint32( vk::Bool32 fullDrawIndexUint32_ )
28067     {
28068       fullDrawIndexUint32 = fullDrawIndexUint32_;
28069       return *this;
28070     }
28071 
setImageCubeArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28072     PhysicalDeviceFeatures & setImageCubeArray( vk::Bool32 imageCubeArray_ )
28073     {
28074       imageCubeArray = imageCubeArray_;
28075       return *this;
28076     }
28077 
setIndependentBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28078     PhysicalDeviceFeatures & setIndependentBlend( vk::Bool32 independentBlend_ )
28079     {
28080       independentBlend = independentBlend_;
28081       return *this;
28082     }
28083 
setGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28084     PhysicalDeviceFeatures & setGeometryShader( vk::Bool32 geometryShader_ )
28085     {
28086       geometryShader = geometryShader_;
28087       return *this;
28088     }
28089 
setTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28090     PhysicalDeviceFeatures & setTessellationShader( vk::Bool32 tessellationShader_ )
28091     {
28092       tessellationShader = tessellationShader_;
28093       return *this;
28094     }
28095 
setSampleRateShadingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28096     PhysicalDeviceFeatures & setSampleRateShading( vk::Bool32 sampleRateShading_ )
28097     {
28098       sampleRateShading = sampleRateShading_;
28099       return *this;
28100     }
28101 
setDualSrcBlendVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28102     PhysicalDeviceFeatures & setDualSrcBlend( vk::Bool32 dualSrcBlend_ )
28103     {
28104       dualSrcBlend = dualSrcBlend_;
28105       return *this;
28106     }
28107 
setLogicOpVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28108     PhysicalDeviceFeatures & setLogicOp( vk::Bool32 logicOp_ )
28109     {
28110       logicOp = logicOp_;
28111       return *this;
28112     }
28113 
setMultiDrawIndirectVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28114     PhysicalDeviceFeatures & setMultiDrawIndirect( vk::Bool32 multiDrawIndirect_ )
28115     {
28116       multiDrawIndirect = multiDrawIndirect_;
28117       return *this;
28118     }
28119 
setDrawIndirectFirstInstanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28120     PhysicalDeviceFeatures & setDrawIndirectFirstInstance( vk::Bool32 drawIndirectFirstInstance_ )
28121     {
28122       drawIndirectFirstInstance = drawIndirectFirstInstance_;
28123       return *this;
28124     }
28125 
setDepthClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28126     PhysicalDeviceFeatures & setDepthClamp( vk::Bool32 depthClamp_ )
28127     {
28128       depthClamp = depthClamp_;
28129       return *this;
28130     }
28131 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28132     PhysicalDeviceFeatures & setDepthBiasClamp( vk::Bool32 depthBiasClamp_ )
28133     {
28134       depthBiasClamp = depthBiasClamp_;
28135       return *this;
28136     }
28137 
setFillModeNonSolidVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28138     PhysicalDeviceFeatures & setFillModeNonSolid( vk::Bool32 fillModeNonSolid_ )
28139     {
28140       fillModeNonSolid = fillModeNonSolid_;
28141       return *this;
28142     }
28143 
setDepthBoundsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28144     PhysicalDeviceFeatures & setDepthBounds( vk::Bool32 depthBounds_ )
28145     {
28146       depthBounds = depthBounds_;
28147       return *this;
28148     }
28149 
setWideLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28150     PhysicalDeviceFeatures & setWideLines( vk::Bool32 wideLines_ )
28151     {
28152       wideLines = wideLines_;
28153       return *this;
28154     }
28155 
setLargePointsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28156     PhysicalDeviceFeatures & setLargePoints( vk::Bool32 largePoints_ )
28157     {
28158       largePoints = largePoints_;
28159       return *this;
28160     }
28161 
setAlphaToOneVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28162     PhysicalDeviceFeatures & setAlphaToOne( vk::Bool32 alphaToOne_ )
28163     {
28164       alphaToOne = alphaToOne_;
28165       return *this;
28166     }
28167 
setMultiViewportVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28168     PhysicalDeviceFeatures & setMultiViewport( vk::Bool32 multiViewport_ )
28169     {
28170       multiViewport = multiViewport_;
28171       return *this;
28172     }
28173 
setSamplerAnisotropyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28174     PhysicalDeviceFeatures & setSamplerAnisotropy( vk::Bool32 samplerAnisotropy_ )
28175     {
28176       samplerAnisotropy = samplerAnisotropy_;
28177       return *this;
28178     }
28179 
setTextureCompressionETC2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28180     PhysicalDeviceFeatures & setTextureCompressionETC2( vk::Bool32 textureCompressionETC2_ )
28181     {
28182       textureCompressionETC2 = textureCompressionETC2_;
28183       return *this;
28184     }
28185 
setTextureCompressionASTC_LDRVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28186     PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( vk::Bool32 textureCompressionASTC_LDR_ )
28187     {
28188       textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
28189       return *this;
28190     }
28191 
setTextureCompressionBCVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28192     PhysicalDeviceFeatures & setTextureCompressionBC( vk::Bool32 textureCompressionBC_ )
28193     {
28194       textureCompressionBC = textureCompressionBC_;
28195       return *this;
28196     }
28197 
setOcclusionQueryPreciseVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28198     PhysicalDeviceFeatures & setOcclusionQueryPrecise( vk::Bool32 occlusionQueryPrecise_ )
28199     {
28200       occlusionQueryPrecise = occlusionQueryPrecise_;
28201       return *this;
28202     }
28203 
setPipelineStatisticsQueryVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28204     PhysicalDeviceFeatures & setPipelineStatisticsQuery( vk::Bool32 pipelineStatisticsQuery_ )
28205     {
28206       pipelineStatisticsQuery = pipelineStatisticsQuery_;
28207       return *this;
28208     }
28209 
setVertexPipelineStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28210     PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( vk::Bool32 vertexPipelineStoresAndAtomics_ )
28211     {
28212       vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
28213       return *this;
28214     }
28215 
setFragmentStoresAndAtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28216     PhysicalDeviceFeatures & setFragmentStoresAndAtomics( vk::Bool32 fragmentStoresAndAtomics_ )
28217     {
28218       fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
28219       return *this;
28220     }
28221 
setShaderTessellationAndGeometryPointSizeVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28222     PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( vk::Bool32 shaderTessellationAndGeometryPointSize_ )
28223     {
28224       shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
28225       return *this;
28226     }
28227 
setShaderImageGatherExtendedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28228     PhysicalDeviceFeatures & setShaderImageGatherExtended( vk::Bool32 shaderImageGatherExtended_ )
28229     {
28230       shaderImageGatherExtended = shaderImageGatherExtended_;
28231       return *this;
28232     }
28233 
setShaderStorageImageExtendedFormatsVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28234     PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( vk::Bool32 shaderStorageImageExtendedFormats_ )
28235     {
28236       shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
28237       return *this;
28238     }
28239 
setShaderStorageImageMultisampleVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28240     PhysicalDeviceFeatures & setShaderStorageImageMultisample( vk::Bool32 shaderStorageImageMultisample_ )
28241     {
28242       shaderStorageImageMultisample = shaderStorageImageMultisample_;
28243       return *this;
28244     }
28245 
setShaderStorageImageReadWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28246     PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( vk::Bool32 shaderStorageImageReadWithoutFormat_ )
28247     {
28248       shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
28249       return *this;
28250     }
28251 
setShaderStorageImageWriteWithoutFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28252     PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( vk::Bool32 shaderStorageImageWriteWithoutFormat_ )
28253     {
28254       shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
28255       return *this;
28256     }
28257 
setShaderUniformBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28258     PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( vk::Bool32 shaderUniformBufferArrayDynamicIndexing_ )
28259     {
28260       shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
28261       return *this;
28262     }
28263 
setShaderSampledImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28264     PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( vk::Bool32 shaderSampledImageArrayDynamicIndexing_ )
28265     {
28266       shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
28267       return *this;
28268     }
28269 
setShaderStorageBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28270     PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( vk::Bool32 shaderStorageBufferArrayDynamicIndexing_ )
28271     {
28272       shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
28273       return *this;
28274     }
28275 
setShaderStorageImageArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28276     PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( vk::Bool32 shaderStorageImageArrayDynamicIndexing_ )
28277     {
28278       shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
28279       return *this;
28280     }
28281 
setShaderClipDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28282     PhysicalDeviceFeatures & setShaderClipDistance( vk::Bool32 shaderClipDistance_ )
28283     {
28284       shaderClipDistance = shaderClipDistance_;
28285       return *this;
28286     }
28287 
setShaderCullDistanceVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28288     PhysicalDeviceFeatures & setShaderCullDistance( vk::Bool32 shaderCullDistance_ )
28289     {
28290       shaderCullDistance = shaderCullDistance_;
28291       return *this;
28292     }
28293 
setShaderFloat64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28294     PhysicalDeviceFeatures & setShaderFloat64( vk::Bool32 shaderFloat64_ )
28295     {
28296       shaderFloat64 = shaderFloat64_;
28297       return *this;
28298     }
28299 
setShaderInt64VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28300     PhysicalDeviceFeatures & setShaderInt64( vk::Bool32 shaderInt64_ )
28301     {
28302       shaderInt64 = shaderInt64_;
28303       return *this;
28304     }
28305 
setShaderInt16VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28306     PhysicalDeviceFeatures & setShaderInt16( vk::Bool32 shaderInt16_ )
28307     {
28308       shaderInt16 = shaderInt16_;
28309       return *this;
28310     }
28311 
setShaderResourceResidencyVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28312     PhysicalDeviceFeatures & setShaderResourceResidency( vk::Bool32 shaderResourceResidency_ )
28313     {
28314       shaderResourceResidency = shaderResourceResidency_;
28315       return *this;
28316     }
28317 
setShaderResourceMinLodVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28318     PhysicalDeviceFeatures & setShaderResourceMinLod( vk::Bool32 shaderResourceMinLod_ )
28319     {
28320       shaderResourceMinLod = shaderResourceMinLod_;
28321       return *this;
28322     }
28323 
setSparseBindingVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28324     PhysicalDeviceFeatures & setSparseBinding( vk::Bool32 sparseBinding_ )
28325     {
28326       sparseBinding = sparseBinding_;
28327       return *this;
28328     }
28329 
setSparseResidencyBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28330     PhysicalDeviceFeatures & setSparseResidencyBuffer( vk::Bool32 sparseResidencyBuffer_ )
28331     {
28332       sparseResidencyBuffer = sparseResidencyBuffer_;
28333       return *this;
28334     }
28335 
setSparseResidencyImage2DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28336     PhysicalDeviceFeatures & setSparseResidencyImage2D( vk::Bool32 sparseResidencyImage2D_ )
28337     {
28338       sparseResidencyImage2D = sparseResidencyImage2D_;
28339       return *this;
28340     }
28341 
setSparseResidencyImage3DVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28342     PhysicalDeviceFeatures & setSparseResidencyImage3D( vk::Bool32 sparseResidencyImage3D_ )
28343     {
28344       sparseResidencyImage3D = sparseResidencyImage3D_;
28345       return *this;
28346     }
28347 
setSparseResidency2SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28348     PhysicalDeviceFeatures & setSparseResidency2Samples( vk::Bool32 sparseResidency2Samples_ )
28349     {
28350       sparseResidency2Samples = sparseResidency2Samples_;
28351       return *this;
28352     }
28353 
setSparseResidency4SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28354     PhysicalDeviceFeatures & setSparseResidency4Samples( vk::Bool32 sparseResidency4Samples_ )
28355     {
28356       sparseResidency4Samples = sparseResidency4Samples_;
28357       return *this;
28358     }
28359 
setSparseResidency8SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28360     PhysicalDeviceFeatures & setSparseResidency8Samples( vk::Bool32 sparseResidency8Samples_ )
28361     {
28362       sparseResidency8Samples = sparseResidency8Samples_;
28363       return *this;
28364     }
28365 
setSparseResidency16SamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28366     PhysicalDeviceFeatures & setSparseResidency16Samples( vk::Bool32 sparseResidency16Samples_ )
28367     {
28368       sparseResidency16Samples = sparseResidency16Samples_;
28369       return *this;
28370     }
28371 
setSparseResidencyAliasedVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28372     PhysicalDeviceFeatures & setSparseResidencyAliased( vk::Bool32 sparseResidencyAliased_ )
28373     {
28374       sparseResidencyAliased = sparseResidencyAliased_;
28375       return *this;
28376     }
28377 
setVariableMultisampleRateVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28378     PhysicalDeviceFeatures & setVariableMultisampleRate( vk::Bool32 variableMultisampleRate_ )
28379     {
28380       variableMultisampleRate = variableMultisampleRate_;
28381       return *this;
28382     }
28383 
setInheritedQueriesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28384     PhysicalDeviceFeatures & setInheritedQueries( vk::Bool32 inheritedQueries_ )
28385     {
28386       inheritedQueries = inheritedQueries_;
28387       return *this;
28388     }
28389 
operator VkPhysicalDeviceFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28390     operator VkPhysicalDeviceFeatures const&() const
28391     {
28392       return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
28393     }
28394 
operator VkPhysicalDeviceFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28395     operator VkPhysicalDeviceFeatures &()
28396     {
28397       return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
28398     }
28399 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28400     bool operator==( PhysicalDeviceFeatures const& rhs ) const
28401     {
28402       return ( robustBufferAccess == rhs.robustBufferAccess )
28403           && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
28404           && ( imageCubeArray == rhs.imageCubeArray )
28405           && ( independentBlend == rhs.independentBlend )
28406           && ( geometryShader == rhs.geometryShader )
28407           && ( tessellationShader == rhs.tessellationShader )
28408           && ( sampleRateShading == rhs.sampleRateShading )
28409           && ( dualSrcBlend == rhs.dualSrcBlend )
28410           && ( logicOp == rhs.logicOp )
28411           && ( multiDrawIndirect == rhs.multiDrawIndirect )
28412           && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
28413           && ( depthClamp == rhs.depthClamp )
28414           && ( depthBiasClamp == rhs.depthBiasClamp )
28415           && ( fillModeNonSolid == rhs.fillModeNonSolid )
28416           && ( depthBounds == rhs.depthBounds )
28417           && ( wideLines == rhs.wideLines )
28418           && ( largePoints == rhs.largePoints )
28419           && ( alphaToOne == rhs.alphaToOne )
28420           && ( multiViewport == rhs.multiViewport )
28421           && ( samplerAnisotropy == rhs.samplerAnisotropy )
28422           && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
28423           && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
28424           && ( textureCompressionBC == rhs.textureCompressionBC )
28425           && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
28426           && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
28427           && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
28428           && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
28429           && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
28430           && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
28431           && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
28432           && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
28433           && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
28434           && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
28435           && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
28436           && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
28437           && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
28438           && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
28439           && ( shaderClipDistance == rhs.shaderClipDistance )
28440           && ( shaderCullDistance == rhs.shaderCullDistance )
28441           && ( shaderFloat64 == rhs.shaderFloat64 )
28442           && ( shaderInt64 == rhs.shaderInt64 )
28443           && ( shaderInt16 == rhs.shaderInt16 )
28444           && ( shaderResourceResidency == rhs.shaderResourceResidency )
28445           && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
28446           && ( sparseBinding == rhs.sparseBinding )
28447           && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
28448           && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
28449           && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
28450           && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
28451           && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
28452           && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
28453           && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
28454           && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
28455           && ( variableMultisampleRate == rhs.variableMultisampleRate )
28456           && ( inheritedQueries == rhs.inheritedQueries );
28457     }
28458 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures28459     bool operator!=( PhysicalDeviceFeatures const& rhs ) const
28460     {
28461       return !operator==( rhs );
28462     }
28463 
28464   public:
28465     vk::Bool32 robustBufferAccess;
28466     vk::Bool32 fullDrawIndexUint32;
28467     vk::Bool32 imageCubeArray;
28468     vk::Bool32 independentBlend;
28469     vk::Bool32 geometryShader;
28470     vk::Bool32 tessellationShader;
28471     vk::Bool32 sampleRateShading;
28472     vk::Bool32 dualSrcBlend;
28473     vk::Bool32 logicOp;
28474     vk::Bool32 multiDrawIndirect;
28475     vk::Bool32 drawIndirectFirstInstance;
28476     vk::Bool32 depthClamp;
28477     vk::Bool32 depthBiasClamp;
28478     vk::Bool32 fillModeNonSolid;
28479     vk::Bool32 depthBounds;
28480     vk::Bool32 wideLines;
28481     vk::Bool32 largePoints;
28482     vk::Bool32 alphaToOne;
28483     vk::Bool32 multiViewport;
28484     vk::Bool32 samplerAnisotropy;
28485     vk::Bool32 textureCompressionETC2;
28486     vk::Bool32 textureCompressionASTC_LDR;
28487     vk::Bool32 textureCompressionBC;
28488     vk::Bool32 occlusionQueryPrecise;
28489     vk::Bool32 pipelineStatisticsQuery;
28490     vk::Bool32 vertexPipelineStoresAndAtomics;
28491     vk::Bool32 fragmentStoresAndAtomics;
28492     vk::Bool32 shaderTessellationAndGeometryPointSize;
28493     vk::Bool32 shaderImageGatherExtended;
28494     vk::Bool32 shaderStorageImageExtendedFormats;
28495     vk::Bool32 shaderStorageImageMultisample;
28496     vk::Bool32 shaderStorageImageReadWithoutFormat;
28497     vk::Bool32 shaderStorageImageWriteWithoutFormat;
28498     vk::Bool32 shaderUniformBufferArrayDynamicIndexing;
28499     vk::Bool32 shaderSampledImageArrayDynamicIndexing;
28500     vk::Bool32 shaderStorageBufferArrayDynamicIndexing;
28501     vk::Bool32 shaderStorageImageArrayDynamicIndexing;
28502     vk::Bool32 shaderClipDistance;
28503     vk::Bool32 shaderCullDistance;
28504     vk::Bool32 shaderFloat64;
28505     vk::Bool32 shaderInt64;
28506     vk::Bool32 shaderInt16;
28507     vk::Bool32 shaderResourceResidency;
28508     vk::Bool32 shaderResourceMinLod;
28509     vk::Bool32 sparseBinding;
28510     vk::Bool32 sparseResidencyBuffer;
28511     vk::Bool32 sparseResidencyImage2D;
28512     vk::Bool32 sparseResidencyImage3D;
28513     vk::Bool32 sparseResidency2Samples;
28514     vk::Bool32 sparseResidency4Samples;
28515     vk::Bool32 sparseResidency8Samples;
28516     vk::Bool32 sparseResidency16Samples;
28517     vk::Bool32 sparseResidencyAliased;
28518     vk::Bool32 variableMultisampleRate;
28519     vk::Bool32 inheritedQueries;
28520   };
28521   static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
28522   static_assert( std::is_standard_layout<PhysicalDeviceFeatures>::value, "struct wrapper is not a standard layout!" );
28523 
28524   namespace layout
28525   {
28526     struct DeviceCreateInfo
28527     {
28528     protected:
DeviceCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceCreateInfo28529       DeviceCreateInfo( vk::DeviceCreateFlags flags_ = vk::DeviceCreateFlags(),
28530                         uint32_t queueCreateInfoCount_ = 0,
28531                         const vk::DeviceQueueCreateInfo* pQueueCreateInfos_ = nullptr,
28532                         uint32_t enabledLayerCount_ = 0,
28533                         const char* const* ppEnabledLayerNames_ = nullptr,
28534                         uint32_t enabledExtensionCount_ = 0,
28535                         const char* const* ppEnabledExtensionNames_ = nullptr,
28536                         const vk::PhysicalDeviceFeatures* pEnabledFeatures_ = nullptr )
28537         : flags( flags_ )
28538         , queueCreateInfoCount( queueCreateInfoCount_ )
28539         , pQueueCreateInfos( pQueueCreateInfos_ )
28540         , enabledLayerCount( enabledLayerCount_ )
28541         , ppEnabledLayerNames( ppEnabledLayerNames_ )
28542         , enabledExtensionCount( enabledExtensionCount_ )
28543         , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
28544         , pEnabledFeatures( pEnabledFeatures_ )
28545       {}
28546 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceCreateInfo28547       DeviceCreateInfo( VkDeviceCreateInfo const & rhs )
28548       {
28549         *reinterpret_cast<VkDeviceCreateInfo*>(this) = rhs;
28550       }
28551 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceCreateInfo28552       DeviceCreateInfo& operator=( VkDeviceCreateInfo const & rhs )
28553       {
28554         *reinterpret_cast<VkDeviceCreateInfo*>(this) = rhs;
28555         return *this;
28556       }
28557 
28558     public:
28559       vk::StructureType sType = StructureType::eDeviceCreateInfo;
28560       const void* pNext = nullptr;
28561       vk::DeviceCreateFlags flags;
28562       uint32_t queueCreateInfoCount;
28563       const vk::DeviceQueueCreateInfo* pQueueCreateInfos;
28564       uint32_t enabledLayerCount;
28565       const char* const* ppEnabledLayerNames;
28566       uint32_t enabledExtensionCount;
28567       const char* const* ppEnabledExtensionNames;
28568       const vk::PhysicalDeviceFeatures* pEnabledFeatures;
28569     };
28570     static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "layout struct and wrapper have different size!" );
28571   }
28572 
28573   struct DeviceCreateInfo : public layout::DeviceCreateInfo
28574   {
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo28575     DeviceCreateInfo( vk::DeviceCreateFlags flags_ = vk::DeviceCreateFlags(),
28576                       uint32_t queueCreateInfoCount_ = 0,
28577                       const vk::DeviceQueueCreateInfo* pQueueCreateInfos_ = nullptr,
28578                       uint32_t enabledLayerCount_ = 0,
28579                       const char* const* ppEnabledLayerNames_ = nullptr,
28580                       uint32_t enabledExtensionCount_ = 0,
28581                       const char* const* ppEnabledExtensionNames_ = nullptr,
28582                       const vk::PhysicalDeviceFeatures* pEnabledFeatures_ = nullptr )
28583       : layout::DeviceCreateInfo( flags_, queueCreateInfoCount_, pQueueCreateInfos_, enabledLayerCount_, ppEnabledLayerNames_, enabledExtensionCount_, ppEnabledExtensionNames_, pEnabledFeatures_ )
28584     {}
28585 
DeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceCreateInfo28586     DeviceCreateInfo( VkDeviceCreateInfo const & rhs )
28587       : layout::DeviceCreateInfo( rhs )
28588     {}
28589 
operator =VULKAN_HPP_NAMESPACE::DeviceCreateInfo28590     DeviceCreateInfo& operator=( VkDeviceCreateInfo const & rhs )
28591     {
28592       *reinterpret_cast<VkDeviceCreateInfo*>(this) = rhs;
28593       return *this;
28594     }
28595 
setPNextVULKAN_HPP_NAMESPACE::DeviceCreateInfo28596     DeviceCreateInfo & setPNext( const void* pNext_ )
28597     {
28598       pNext = pNext_;
28599       return *this;
28600     }
28601 
setFlagsVULKAN_HPP_NAMESPACE::DeviceCreateInfo28602     DeviceCreateInfo & setFlags( vk::DeviceCreateFlags flags_ )
28603     {
28604       flags = flags_;
28605       return *this;
28606     }
28607 
setQueueCreateInfoCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo28608     DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ )
28609     {
28610       queueCreateInfoCount = queueCreateInfoCount_;
28611       return *this;
28612     }
28613 
setPQueueCreateInfosVULKAN_HPP_NAMESPACE::DeviceCreateInfo28614     DeviceCreateInfo & setPQueueCreateInfos( const vk::DeviceQueueCreateInfo* pQueueCreateInfos_ )
28615     {
28616       pQueueCreateInfos = pQueueCreateInfos_;
28617       return *this;
28618     }
28619 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo28620     DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ )
28621     {
28622       enabledLayerCount = enabledLayerCount_;
28623       return *this;
28624     }
28625 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo28626     DeviceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ )
28627     {
28628       ppEnabledLayerNames = ppEnabledLayerNames_;
28629       return *this;
28630     }
28631 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::DeviceCreateInfo28632     DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ )
28633     {
28634       enabledExtensionCount = enabledExtensionCount_;
28635       return *this;
28636     }
28637 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::DeviceCreateInfo28638     DeviceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ )
28639     {
28640       ppEnabledExtensionNames = ppEnabledExtensionNames_;
28641       return *this;
28642     }
28643 
setPEnabledFeaturesVULKAN_HPP_NAMESPACE::DeviceCreateInfo28644     DeviceCreateInfo & setPEnabledFeatures( const vk::PhysicalDeviceFeatures* pEnabledFeatures_ )
28645     {
28646       pEnabledFeatures = pEnabledFeatures_;
28647       return *this;
28648     }
28649 
operator VkDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceCreateInfo28650     operator VkDeviceCreateInfo const&() const
28651     {
28652       return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
28653     }
28654 
operator VkDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceCreateInfo28655     operator VkDeviceCreateInfo &()
28656     {
28657       return *reinterpret_cast<VkDeviceCreateInfo*>( this );
28658     }
28659 
operator ==VULKAN_HPP_NAMESPACE::DeviceCreateInfo28660     bool operator==( DeviceCreateInfo const& rhs ) const
28661     {
28662       return ( sType == rhs.sType )
28663           && ( pNext == rhs.pNext )
28664           && ( flags == rhs.flags )
28665           && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
28666           && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
28667           && ( enabledLayerCount == rhs.enabledLayerCount )
28668           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
28669           && ( enabledExtensionCount == rhs.enabledExtensionCount )
28670           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
28671           && ( pEnabledFeatures == rhs.pEnabledFeatures );
28672     }
28673 
operator !=VULKAN_HPP_NAMESPACE::DeviceCreateInfo28674     bool operator!=( DeviceCreateInfo const& rhs ) const
28675     {
28676       return !operator==( rhs );
28677     }
28678 
28679   private:
28680     using layout::DeviceCreateInfo::sType;
28681   };
28682   static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
28683   static_assert( std::is_standard_layout<DeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
28684 
28685   namespace layout
28686   {
28687     struct DeviceEventInfoEXT
28688     {
28689     protected:
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::layout::DeviceEventInfoEXT28690       DeviceEventInfoEXT( vk::DeviceEventTypeEXT deviceEvent_ = vk::DeviceEventTypeEXT::eDisplayHotplug )
28691         : deviceEvent( deviceEvent_ )
28692       {}
28693 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::layout::DeviceEventInfoEXT28694       DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs )
28695       {
28696         *reinterpret_cast<VkDeviceEventInfoEXT*>(this) = rhs;
28697       }
28698 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceEventInfoEXT28699       DeviceEventInfoEXT& operator=( VkDeviceEventInfoEXT const & rhs )
28700       {
28701         *reinterpret_cast<VkDeviceEventInfoEXT*>(this) = rhs;
28702         return *this;
28703       }
28704 
28705     public:
28706       vk::StructureType sType = StructureType::eDeviceEventInfoEXT;
28707       const void* pNext = nullptr;
28708       vk::DeviceEventTypeEXT deviceEvent;
28709     };
28710     static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "layout struct and wrapper have different size!" );
28711   }
28712 
28713   struct DeviceEventInfoEXT : public layout::DeviceEventInfoEXT
28714   {
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28715     DeviceEventInfoEXT( vk::DeviceEventTypeEXT deviceEvent_ = vk::DeviceEventTypeEXT::eDisplayHotplug )
28716       : layout::DeviceEventInfoEXT( deviceEvent_ )
28717     {}
28718 
DeviceEventInfoEXTVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28719     DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs )
28720       : layout::DeviceEventInfoEXT( rhs )
28721     {}
28722 
operator =VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28723     DeviceEventInfoEXT& operator=( VkDeviceEventInfoEXT const & rhs )
28724     {
28725       *reinterpret_cast<VkDeviceEventInfoEXT*>(this) = rhs;
28726       return *this;
28727     }
28728 
setPNextVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28729     DeviceEventInfoEXT & setPNext( const void* pNext_ )
28730     {
28731       pNext = pNext_;
28732       return *this;
28733     }
28734 
setDeviceEventVULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28735     DeviceEventInfoEXT & setDeviceEvent( vk::DeviceEventTypeEXT deviceEvent_ )
28736     {
28737       deviceEvent = deviceEvent_;
28738       return *this;
28739     }
28740 
operator VkDeviceEventInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28741     operator VkDeviceEventInfoEXT const&() const
28742     {
28743       return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
28744     }
28745 
operator VkDeviceEventInfoEXT&VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28746     operator VkDeviceEventInfoEXT &()
28747     {
28748       return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
28749     }
28750 
operator ==VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28751     bool operator==( DeviceEventInfoEXT const& rhs ) const
28752     {
28753       return ( sType == rhs.sType )
28754           && ( pNext == rhs.pNext )
28755           && ( deviceEvent == rhs.deviceEvent );
28756     }
28757 
operator !=VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT28758     bool operator!=( DeviceEventInfoEXT const& rhs ) const
28759     {
28760       return !operator==( rhs );
28761     }
28762 
28763   private:
28764     using layout::DeviceEventInfoEXT::sType;
28765   };
28766   static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
28767   static_assert( std::is_standard_layout<DeviceEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
28768 
28769   namespace layout
28770   {
28771     struct DeviceGeneratedCommandsFeaturesNVX
28772     {
28773     protected:
DeviceGeneratedCommandsFeaturesNVXVULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsFeaturesNVX28774       DeviceGeneratedCommandsFeaturesNVX( vk::Bool32 computeBindingPointSupport_ = 0 )
28775         : computeBindingPointSupport( computeBindingPointSupport_ )
28776       {}
28777 
DeviceGeneratedCommandsFeaturesNVXVULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsFeaturesNVX28778       DeviceGeneratedCommandsFeaturesNVX( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
28779       {
28780         *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this) = rhs;
28781       }
28782 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsFeaturesNVX28783       DeviceGeneratedCommandsFeaturesNVX& operator=( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
28784       {
28785         *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this) = rhs;
28786         return *this;
28787       }
28788 
28789     public:
28790       vk::StructureType sType = StructureType::eDeviceGeneratedCommandsFeaturesNVX;
28791       const void* pNext = nullptr;
28792       vk::Bool32 computeBindingPointSupport;
28793     };
28794     static_assert( sizeof( DeviceGeneratedCommandsFeaturesNVX ) == sizeof( VkDeviceGeneratedCommandsFeaturesNVX ), "layout struct and wrapper have different size!" );
28795   }
28796 
28797   struct DeviceGeneratedCommandsFeaturesNVX : public layout::DeviceGeneratedCommandsFeaturesNVX
28798   {
DeviceGeneratedCommandsFeaturesNVXVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28799     DeviceGeneratedCommandsFeaturesNVX( vk::Bool32 computeBindingPointSupport_ = 0 )
28800       : layout::DeviceGeneratedCommandsFeaturesNVX( computeBindingPointSupport_ )
28801     {}
28802 
DeviceGeneratedCommandsFeaturesNVXVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28803     DeviceGeneratedCommandsFeaturesNVX( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
28804       : layout::DeviceGeneratedCommandsFeaturesNVX( rhs )
28805     {}
28806 
operator =VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28807     DeviceGeneratedCommandsFeaturesNVX& operator=( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
28808     {
28809       *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this) = rhs;
28810       return *this;
28811     }
28812 
setPNextVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28813     DeviceGeneratedCommandsFeaturesNVX & setPNext( const void* pNext_ )
28814     {
28815       pNext = pNext_;
28816       return *this;
28817     }
28818 
setComputeBindingPointSupportVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28819     DeviceGeneratedCommandsFeaturesNVX & setComputeBindingPointSupport( vk::Bool32 computeBindingPointSupport_ )
28820     {
28821       computeBindingPointSupport = computeBindingPointSupport_;
28822       return *this;
28823     }
28824 
operator VkDeviceGeneratedCommandsFeaturesNVX const&VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28825     operator VkDeviceGeneratedCommandsFeaturesNVX const&() const
28826     {
28827       return *reinterpret_cast<const VkDeviceGeneratedCommandsFeaturesNVX*>( this );
28828     }
28829 
operator VkDeviceGeneratedCommandsFeaturesNVX&VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28830     operator VkDeviceGeneratedCommandsFeaturesNVX &()
28831     {
28832       return *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( this );
28833     }
28834 
operator ==VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28835     bool operator==( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const
28836     {
28837       return ( sType == rhs.sType )
28838           && ( pNext == rhs.pNext )
28839           && ( computeBindingPointSupport == rhs.computeBindingPointSupport );
28840     }
28841 
operator !=VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX28842     bool operator!=( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const
28843     {
28844       return !operator==( rhs );
28845     }
28846 
28847   private:
28848     using layout::DeviceGeneratedCommandsFeaturesNVX::sType;
28849   };
28850   static_assert( sizeof( DeviceGeneratedCommandsFeaturesNVX ) == sizeof( VkDeviceGeneratedCommandsFeaturesNVX ), "struct and wrapper have different size!" );
28851   static_assert( std::is_standard_layout<DeviceGeneratedCommandsFeaturesNVX>::value, "struct wrapper is not a standard layout!" );
28852 
28853   namespace layout
28854   {
28855     struct DeviceGeneratedCommandsLimitsNVX
28856     {
28857     protected:
DeviceGeneratedCommandsLimitsNVXVULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsLimitsNVX28858       DeviceGeneratedCommandsLimitsNVX( uint32_t maxIndirectCommandsLayoutTokenCount_ = 0,
28859                                         uint32_t maxObjectEntryCounts_ = 0,
28860                                         uint32_t minSequenceCountBufferOffsetAlignment_ = 0,
28861                                         uint32_t minSequenceIndexBufferOffsetAlignment_ = 0,
28862                                         uint32_t minCommandsTokenBufferOffsetAlignment_ = 0 )
28863         : maxIndirectCommandsLayoutTokenCount( maxIndirectCommandsLayoutTokenCount_ )
28864         , maxObjectEntryCounts( maxObjectEntryCounts_ )
28865         , minSequenceCountBufferOffsetAlignment( minSequenceCountBufferOffsetAlignment_ )
28866         , minSequenceIndexBufferOffsetAlignment( minSequenceIndexBufferOffsetAlignment_ )
28867         , minCommandsTokenBufferOffsetAlignment( minCommandsTokenBufferOffsetAlignment_ )
28868       {}
28869 
DeviceGeneratedCommandsLimitsNVXVULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsLimitsNVX28870       DeviceGeneratedCommandsLimitsNVX( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
28871       {
28872         *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this) = rhs;
28873       }
28874 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGeneratedCommandsLimitsNVX28875       DeviceGeneratedCommandsLimitsNVX& operator=( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
28876       {
28877         *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this) = rhs;
28878         return *this;
28879       }
28880 
28881     public:
28882       vk::StructureType sType = StructureType::eDeviceGeneratedCommandsLimitsNVX;
28883       const void* pNext = nullptr;
28884       uint32_t maxIndirectCommandsLayoutTokenCount;
28885       uint32_t maxObjectEntryCounts;
28886       uint32_t minSequenceCountBufferOffsetAlignment;
28887       uint32_t minSequenceIndexBufferOffsetAlignment;
28888       uint32_t minCommandsTokenBufferOffsetAlignment;
28889     };
28890     static_assert( sizeof( DeviceGeneratedCommandsLimitsNVX ) == sizeof( VkDeviceGeneratedCommandsLimitsNVX ), "layout struct and wrapper have different size!" );
28891   }
28892 
28893   struct DeviceGeneratedCommandsLimitsNVX : public layout::DeviceGeneratedCommandsLimitsNVX
28894   {
DeviceGeneratedCommandsLimitsNVXVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28895     DeviceGeneratedCommandsLimitsNVX( uint32_t maxIndirectCommandsLayoutTokenCount_ = 0,
28896                                       uint32_t maxObjectEntryCounts_ = 0,
28897                                       uint32_t minSequenceCountBufferOffsetAlignment_ = 0,
28898                                       uint32_t minSequenceIndexBufferOffsetAlignment_ = 0,
28899                                       uint32_t minCommandsTokenBufferOffsetAlignment_ = 0 )
28900       : layout::DeviceGeneratedCommandsLimitsNVX( maxIndirectCommandsLayoutTokenCount_, maxObjectEntryCounts_, minSequenceCountBufferOffsetAlignment_, minSequenceIndexBufferOffsetAlignment_, minCommandsTokenBufferOffsetAlignment_ )
28901     {}
28902 
DeviceGeneratedCommandsLimitsNVXVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28903     DeviceGeneratedCommandsLimitsNVX( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
28904       : layout::DeviceGeneratedCommandsLimitsNVX( rhs )
28905     {}
28906 
operator =VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28907     DeviceGeneratedCommandsLimitsNVX& operator=( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
28908     {
28909       *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this) = rhs;
28910       return *this;
28911     }
28912 
setPNextVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28913     DeviceGeneratedCommandsLimitsNVX & setPNext( const void* pNext_ )
28914     {
28915       pNext = pNext_;
28916       return *this;
28917     }
28918 
setMaxIndirectCommandsLayoutTokenCountVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28919     DeviceGeneratedCommandsLimitsNVX & setMaxIndirectCommandsLayoutTokenCount( uint32_t maxIndirectCommandsLayoutTokenCount_ )
28920     {
28921       maxIndirectCommandsLayoutTokenCount = maxIndirectCommandsLayoutTokenCount_;
28922       return *this;
28923     }
28924 
setMaxObjectEntryCountsVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28925     DeviceGeneratedCommandsLimitsNVX & setMaxObjectEntryCounts( uint32_t maxObjectEntryCounts_ )
28926     {
28927       maxObjectEntryCounts = maxObjectEntryCounts_;
28928       return *this;
28929     }
28930 
setMinSequenceCountBufferOffsetAlignmentVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28931     DeviceGeneratedCommandsLimitsNVX & setMinSequenceCountBufferOffsetAlignment( uint32_t minSequenceCountBufferOffsetAlignment_ )
28932     {
28933       minSequenceCountBufferOffsetAlignment = minSequenceCountBufferOffsetAlignment_;
28934       return *this;
28935     }
28936 
setMinSequenceIndexBufferOffsetAlignmentVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28937     DeviceGeneratedCommandsLimitsNVX & setMinSequenceIndexBufferOffsetAlignment( uint32_t minSequenceIndexBufferOffsetAlignment_ )
28938     {
28939       minSequenceIndexBufferOffsetAlignment = minSequenceIndexBufferOffsetAlignment_;
28940       return *this;
28941     }
28942 
setMinCommandsTokenBufferOffsetAlignmentVULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28943     DeviceGeneratedCommandsLimitsNVX & setMinCommandsTokenBufferOffsetAlignment( uint32_t minCommandsTokenBufferOffsetAlignment_ )
28944     {
28945       minCommandsTokenBufferOffsetAlignment = minCommandsTokenBufferOffsetAlignment_;
28946       return *this;
28947     }
28948 
operator VkDeviceGeneratedCommandsLimitsNVX const&VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28949     operator VkDeviceGeneratedCommandsLimitsNVX const&() const
28950     {
28951       return *reinterpret_cast<const VkDeviceGeneratedCommandsLimitsNVX*>( this );
28952     }
28953 
operator VkDeviceGeneratedCommandsLimitsNVX&VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28954     operator VkDeviceGeneratedCommandsLimitsNVX &()
28955     {
28956       return *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( this );
28957     }
28958 
operator ==VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28959     bool operator==( DeviceGeneratedCommandsLimitsNVX const& rhs ) const
28960     {
28961       return ( sType == rhs.sType )
28962           && ( pNext == rhs.pNext )
28963           && ( maxIndirectCommandsLayoutTokenCount == rhs.maxIndirectCommandsLayoutTokenCount )
28964           && ( maxObjectEntryCounts == rhs.maxObjectEntryCounts )
28965           && ( minSequenceCountBufferOffsetAlignment == rhs.minSequenceCountBufferOffsetAlignment )
28966           && ( minSequenceIndexBufferOffsetAlignment == rhs.minSequenceIndexBufferOffsetAlignment )
28967           && ( minCommandsTokenBufferOffsetAlignment == rhs.minCommandsTokenBufferOffsetAlignment );
28968     }
28969 
operator !=VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX28970     bool operator!=( DeviceGeneratedCommandsLimitsNVX const& rhs ) const
28971     {
28972       return !operator==( rhs );
28973     }
28974 
28975   private:
28976     using layout::DeviceGeneratedCommandsLimitsNVX::sType;
28977   };
28978   static_assert( sizeof( DeviceGeneratedCommandsLimitsNVX ) == sizeof( VkDeviceGeneratedCommandsLimitsNVX ), "struct and wrapper have different size!" );
28979   static_assert( std::is_standard_layout<DeviceGeneratedCommandsLimitsNVX>::value, "struct wrapper is not a standard layout!" );
28980 
28981   namespace layout
28982   {
28983     struct DeviceGroupBindSparseInfo
28984     {
28985     protected:
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupBindSparseInfo28986       DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = 0,
28987                                  uint32_t memoryDeviceIndex_ = 0 )
28988         : resourceDeviceIndex( resourceDeviceIndex_ )
28989         , memoryDeviceIndex( memoryDeviceIndex_ )
28990       {}
28991 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupBindSparseInfo28992       DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs )
28993       {
28994         *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this) = rhs;
28995       }
28996 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupBindSparseInfo28997       DeviceGroupBindSparseInfo& operator=( VkDeviceGroupBindSparseInfo const & rhs )
28998       {
28999         *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this) = rhs;
29000         return *this;
29001       }
29002 
29003     public:
29004       vk::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
29005       const void* pNext = nullptr;
29006       uint32_t resourceDeviceIndex;
29007       uint32_t memoryDeviceIndex;
29008     };
29009     static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "layout struct and wrapper have different size!" );
29010   }
29011 
29012   struct DeviceGroupBindSparseInfo : public layout::DeviceGroupBindSparseInfo
29013   {
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29014     DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = 0,
29015                                uint32_t memoryDeviceIndex_ = 0 )
29016       : layout::DeviceGroupBindSparseInfo( resourceDeviceIndex_, memoryDeviceIndex_ )
29017     {}
29018 
DeviceGroupBindSparseInfoVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29019     DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs )
29020       : layout::DeviceGroupBindSparseInfo( rhs )
29021     {}
29022 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29023     DeviceGroupBindSparseInfo& operator=( VkDeviceGroupBindSparseInfo const & rhs )
29024     {
29025       *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this) = rhs;
29026       return *this;
29027     }
29028 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29029     DeviceGroupBindSparseInfo & setPNext( const void* pNext_ )
29030     {
29031       pNext = pNext_;
29032       return *this;
29033     }
29034 
setResourceDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29035     DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ )
29036     {
29037       resourceDeviceIndex = resourceDeviceIndex_;
29038       return *this;
29039     }
29040 
setMemoryDeviceIndexVULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29041     DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ )
29042     {
29043       memoryDeviceIndex = memoryDeviceIndex_;
29044       return *this;
29045     }
29046 
operator VkDeviceGroupBindSparseInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29047     operator VkDeviceGroupBindSparseInfo const&() const
29048     {
29049       return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
29050     }
29051 
operator VkDeviceGroupBindSparseInfo&VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29052     operator VkDeviceGroupBindSparseInfo &()
29053     {
29054       return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
29055     }
29056 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29057     bool operator==( DeviceGroupBindSparseInfo const& rhs ) const
29058     {
29059       return ( sType == rhs.sType )
29060           && ( pNext == rhs.pNext )
29061           && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
29062           && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
29063     }
29064 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo29065     bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const
29066     {
29067       return !operator==( rhs );
29068     }
29069 
29070   private:
29071     using layout::DeviceGroupBindSparseInfo::sType;
29072   };
29073   static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
29074   static_assert( std::is_standard_layout<DeviceGroupBindSparseInfo>::value, "struct wrapper is not a standard layout!" );
29075 
29076   namespace layout
29077   {
29078     struct DeviceGroupCommandBufferBeginInfo
29079     {
29080     protected:
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupCommandBufferBeginInfo29081       DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = 0 )
29082         : deviceMask( deviceMask_ )
29083       {}
29084 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupCommandBufferBeginInfo29085       DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs )
29086       {
29087         *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this) = rhs;
29088       }
29089 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupCommandBufferBeginInfo29090       DeviceGroupCommandBufferBeginInfo& operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs )
29091       {
29092         *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this) = rhs;
29093         return *this;
29094       }
29095 
29096     public:
29097       vk::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
29098       const void* pNext = nullptr;
29099       uint32_t deviceMask;
29100     };
29101     static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "layout struct and wrapper have different size!" );
29102   }
29103 
29104   struct DeviceGroupCommandBufferBeginInfo : public layout::DeviceGroupCommandBufferBeginInfo
29105   {
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29106     DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = 0 )
29107       : layout::DeviceGroupCommandBufferBeginInfo( deviceMask_ )
29108     {}
29109 
DeviceGroupCommandBufferBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29110     DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs )
29111       : layout::DeviceGroupCommandBufferBeginInfo( rhs )
29112     {}
29113 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29114     DeviceGroupCommandBufferBeginInfo& operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs )
29115     {
29116       *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this) = rhs;
29117       return *this;
29118     }
29119 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29120     DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ )
29121     {
29122       pNext = pNext_;
29123       return *this;
29124     }
29125 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29126     DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ )
29127     {
29128       deviceMask = deviceMask_;
29129       return *this;
29130     }
29131 
operator VkDeviceGroupCommandBufferBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29132     operator VkDeviceGroupCommandBufferBeginInfo const&() const
29133     {
29134       return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
29135     }
29136 
operator VkDeviceGroupCommandBufferBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29137     operator VkDeviceGroupCommandBufferBeginInfo &()
29138     {
29139       return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
29140     }
29141 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29142     bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const
29143     {
29144       return ( sType == rhs.sType )
29145           && ( pNext == rhs.pNext )
29146           && ( deviceMask == rhs.deviceMask );
29147     }
29148 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo29149     bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const
29150     {
29151       return !operator==( rhs );
29152     }
29153 
29154   private:
29155     using layout::DeviceGroupCommandBufferBeginInfo::sType;
29156   };
29157   static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
29158   static_assert( std::is_standard_layout<DeviceGroupCommandBufferBeginInfo>::value, "struct wrapper is not a standard layout!" );
29159 
29160   namespace layout
29161   {
29162     struct DeviceGroupDeviceCreateInfo
29163     {
29164     protected:
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupDeviceCreateInfo29165       DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = 0,
29166                                    const vk::PhysicalDevice* pPhysicalDevices_ = nullptr )
29167         : physicalDeviceCount( physicalDeviceCount_ )
29168         , pPhysicalDevices( pPhysicalDevices_ )
29169       {}
29170 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupDeviceCreateInfo29171       DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs )
29172       {
29173         *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this) = rhs;
29174       }
29175 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupDeviceCreateInfo29176       DeviceGroupDeviceCreateInfo& operator=( VkDeviceGroupDeviceCreateInfo const & rhs )
29177       {
29178         *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this) = rhs;
29179         return *this;
29180       }
29181 
29182     public:
29183       vk::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
29184       const void* pNext = nullptr;
29185       uint32_t physicalDeviceCount;
29186       const vk::PhysicalDevice* pPhysicalDevices;
29187     };
29188     static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "layout struct and wrapper have different size!" );
29189   }
29190 
29191   struct DeviceGroupDeviceCreateInfo : public layout::DeviceGroupDeviceCreateInfo
29192   {
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29193     DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = 0,
29194                                  const vk::PhysicalDevice* pPhysicalDevices_ = nullptr )
29195       : layout::DeviceGroupDeviceCreateInfo( physicalDeviceCount_, pPhysicalDevices_ )
29196     {}
29197 
DeviceGroupDeviceCreateInfoVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29198     DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs )
29199       : layout::DeviceGroupDeviceCreateInfo( rhs )
29200     {}
29201 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29202     DeviceGroupDeviceCreateInfo& operator=( VkDeviceGroupDeviceCreateInfo const & rhs )
29203     {
29204       *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this) = rhs;
29205       return *this;
29206     }
29207 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29208     DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ )
29209     {
29210       pNext = pNext_;
29211       return *this;
29212     }
29213 
setPhysicalDeviceCountVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29214     DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ )
29215     {
29216       physicalDeviceCount = physicalDeviceCount_;
29217       return *this;
29218     }
29219 
setPPhysicalDevicesVULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29220     DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const vk::PhysicalDevice* pPhysicalDevices_ )
29221     {
29222       pPhysicalDevices = pPhysicalDevices_;
29223       return *this;
29224     }
29225 
operator VkDeviceGroupDeviceCreateInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29226     operator VkDeviceGroupDeviceCreateInfo const&() const
29227     {
29228       return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
29229     }
29230 
operator VkDeviceGroupDeviceCreateInfo&VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29231     operator VkDeviceGroupDeviceCreateInfo &()
29232     {
29233       return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
29234     }
29235 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29236     bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const
29237     {
29238       return ( sType == rhs.sType )
29239           && ( pNext == rhs.pNext )
29240           && ( physicalDeviceCount == rhs.physicalDeviceCount )
29241           && ( pPhysicalDevices == rhs.pPhysicalDevices );
29242     }
29243 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo29244     bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const
29245     {
29246       return !operator==( rhs );
29247     }
29248 
29249   private:
29250     using layout::DeviceGroupDeviceCreateInfo::sType;
29251   };
29252   static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
29253   static_assert( std::is_standard_layout<DeviceGroupDeviceCreateInfo>::value, "struct wrapper is not a standard layout!" );
29254 
29255   namespace layout
29256   {
29257     struct DeviceGroupPresentCapabilitiesKHR
29258     {
29259     protected:
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentCapabilitiesKHR29260       DeviceGroupPresentCapabilitiesKHR( std::array<uint32_t,VK_MAX_DEVICE_GROUP_SIZE> const& presentMask_ = { { 0 } },
29261                                          vk::DeviceGroupPresentModeFlagsKHR modes_ = vk::DeviceGroupPresentModeFlagsKHR() )
29262         : modes( modes_ )
29263       {
29264         memcpy( &presentMask, presentMask_.data(), VK_MAX_DEVICE_GROUP_SIZE * sizeof( uint32_t ) );
29265 
29266       }
29267 
DeviceGroupPresentCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentCapabilitiesKHR29268       DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs )
29269       {
29270         *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>(this) = rhs;
29271       }
29272 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentCapabilitiesKHR29273       DeviceGroupPresentCapabilitiesKHR& operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs )
29274       {
29275         *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>(this) = rhs;
29276         return *this;
29277       }
29278 
29279     public:
29280       vk::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
29281       const void* pNext = nullptr;
29282       uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
29283       vk::DeviceGroupPresentModeFlagsKHR modes;
29284     };
29285     static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "layout struct and wrapper have different size!" );
29286   }
29287 
29288   struct DeviceGroupPresentCapabilitiesKHR : public layout::DeviceGroupPresentCapabilitiesKHR
29289   {
operator VkDeviceGroupPresentCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR29290     operator VkDeviceGroupPresentCapabilitiesKHR const&() const
29291     {
29292       return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
29293     }
29294 
operator VkDeviceGroupPresentCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR29295     operator VkDeviceGroupPresentCapabilitiesKHR &()
29296     {
29297       return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
29298     }
29299 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR29300     bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const
29301     {
29302       return ( sType == rhs.sType )
29303           && ( pNext == rhs.pNext )
29304           && ( memcmp( presentMask, rhs.presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof( uint32_t ) ) == 0 )
29305           && ( modes == rhs.modes );
29306     }
29307 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR29308     bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const
29309     {
29310       return !operator==( rhs );
29311     }
29312 
29313   private:
29314     using layout::DeviceGroupPresentCapabilitiesKHR::sType;
29315   };
29316   static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
29317   static_assert( std::is_standard_layout<DeviceGroupPresentCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
29318 
29319   namespace layout
29320   {
29321     struct DeviceGroupPresentInfoKHR
29322     {
29323     protected:
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentInfoKHR29324       DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = 0,
29325                                  const uint32_t* pDeviceMasks_ = nullptr,
29326                                  vk::DeviceGroupPresentModeFlagBitsKHR mode_ = vk::DeviceGroupPresentModeFlagBitsKHR::eLocal )
29327         : swapchainCount( swapchainCount_ )
29328         , pDeviceMasks( pDeviceMasks_ )
29329         , mode( mode_ )
29330       {}
29331 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentInfoKHR29332       DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs )
29333       {
29334         *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this) = rhs;
29335       }
29336 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupPresentInfoKHR29337       DeviceGroupPresentInfoKHR& operator=( VkDeviceGroupPresentInfoKHR const & rhs )
29338       {
29339         *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this) = rhs;
29340         return *this;
29341       }
29342 
29343     public:
29344       vk::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
29345       const void* pNext = nullptr;
29346       uint32_t swapchainCount;
29347       const uint32_t* pDeviceMasks;
29348       vk::DeviceGroupPresentModeFlagBitsKHR mode;
29349     };
29350     static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "layout struct and wrapper have different size!" );
29351   }
29352 
29353   struct DeviceGroupPresentInfoKHR : public layout::DeviceGroupPresentInfoKHR
29354   {
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29355     DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = 0,
29356                                const uint32_t* pDeviceMasks_ = nullptr,
29357                                vk::DeviceGroupPresentModeFlagBitsKHR mode_ = vk::DeviceGroupPresentModeFlagBitsKHR::eLocal )
29358       : layout::DeviceGroupPresentInfoKHR( swapchainCount_, pDeviceMasks_, mode_ )
29359     {}
29360 
DeviceGroupPresentInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29361     DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs )
29362       : layout::DeviceGroupPresentInfoKHR( rhs )
29363     {}
29364 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29365     DeviceGroupPresentInfoKHR& operator=( VkDeviceGroupPresentInfoKHR const & rhs )
29366     {
29367       *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this) = rhs;
29368       return *this;
29369     }
29370 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29371     DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ )
29372     {
29373       pNext = pNext_;
29374       return *this;
29375     }
29376 
setSwapchainCountVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29377     DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ )
29378     {
29379       swapchainCount = swapchainCount_;
29380       return *this;
29381     }
29382 
setPDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29383     DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ )
29384     {
29385       pDeviceMasks = pDeviceMasks_;
29386       return *this;
29387     }
29388 
setModeVULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29389     DeviceGroupPresentInfoKHR & setMode( vk::DeviceGroupPresentModeFlagBitsKHR mode_ )
29390     {
29391       mode = mode_;
29392       return *this;
29393     }
29394 
operator VkDeviceGroupPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29395     operator VkDeviceGroupPresentInfoKHR const&() const
29396     {
29397       return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
29398     }
29399 
operator VkDeviceGroupPresentInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29400     operator VkDeviceGroupPresentInfoKHR &()
29401     {
29402       return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
29403     }
29404 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29405     bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const
29406     {
29407       return ( sType == rhs.sType )
29408           && ( pNext == rhs.pNext )
29409           && ( swapchainCount == rhs.swapchainCount )
29410           && ( pDeviceMasks == rhs.pDeviceMasks )
29411           && ( mode == rhs.mode );
29412     }
29413 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR29414     bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const
29415     {
29416       return !operator==( rhs );
29417     }
29418 
29419   private:
29420     using layout::DeviceGroupPresentInfoKHR::sType;
29421   };
29422   static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
29423   static_assert( std::is_standard_layout<DeviceGroupPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
29424 
29425   namespace layout
29426   {
29427     struct DeviceGroupRenderPassBeginInfo
29428     {
29429     protected:
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupRenderPassBeginInfo29430       DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = 0,
29431                                       uint32_t deviceRenderAreaCount_ = 0,
29432                                       const vk::Rect2D* pDeviceRenderAreas_ = nullptr )
29433         : deviceMask( deviceMask_ )
29434         , deviceRenderAreaCount( deviceRenderAreaCount_ )
29435         , pDeviceRenderAreas( pDeviceRenderAreas_ )
29436       {}
29437 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupRenderPassBeginInfo29438       DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs )
29439       {
29440         *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this) = rhs;
29441       }
29442 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupRenderPassBeginInfo29443       DeviceGroupRenderPassBeginInfo& operator=( VkDeviceGroupRenderPassBeginInfo const & rhs )
29444       {
29445         *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this) = rhs;
29446         return *this;
29447       }
29448 
29449     public:
29450       vk::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
29451       const void* pNext = nullptr;
29452       uint32_t deviceMask;
29453       uint32_t deviceRenderAreaCount;
29454       const vk::Rect2D* pDeviceRenderAreas;
29455     };
29456     static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "layout struct and wrapper have different size!" );
29457   }
29458 
29459   struct DeviceGroupRenderPassBeginInfo : public layout::DeviceGroupRenderPassBeginInfo
29460   {
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29461     DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = 0,
29462                                     uint32_t deviceRenderAreaCount_ = 0,
29463                                     const vk::Rect2D* pDeviceRenderAreas_ = nullptr )
29464       : layout::DeviceGroupRenderPassBeginInfo( deviceMask_, deviceRenderAreaCount_, pDeviceRenderAreas_ )
29465     {}
29466 
DeviceGroupRenderPassBeginInfoVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29467     DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs )
29468       : layout::DeviceGroupRenderPassBeginInfo( rhs )
29469     {}
29470 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29471     DeviceGroupRenderPassBeginInfo& operator=( VkDeviceGroupRenderPassBeginInfo const & rhs )
29472     {
29473       *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this) = rhs;
29474       return *this;
29475     }
29476 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29477     DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ )
29478     {
29479       pNext = pNext_;
29480       return *this;
29481     }
29482 
setDeviceMaskVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29483     DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ )
29484     {
29485       deviceMask = deviceMask_;
29486       return *this;
29487     }
29488 
setDeviceRenderAreaCountVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29489     DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ )
29490     {
29491       deviceRenderAreaCount = deviceRenderAreaCount_;
29492       return *this;
29493     }
29494 
setPDeviceRenderAreasVULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29495     DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const vk::Rect2D* pDeviceRenderAreas_ )
29496     {
29497       pDeviceRenderAreas = pDeviceRenderAreas_;
29498       return *this;
29499     }
29500 
operator VkDeviceGroupRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29501     operator VkDeviceGroupRenderPassBeginInfo const&() const
29502     {
29503       return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
29504     }
29505 
operator VkDeviceGroupRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29506     operator VkDeviceGroupRenderPassBeginInfo &()
29507     {
29508       return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
29509     }
29510 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29511     bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const
29512     {
29513       return ( sType == rhs.sType )
29514           && ( pNext == rhs.pNext )
29515           && ( deviceMask == rhs.deviceMask )
29516           && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
29517           && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
29518     }
29519 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo29520     bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const
29521     {
29522       return !operator==( rhs );
29523     }
29524 
29525   private:
29526     using layout::DeviceGroupRenderPassBeginInfo::sType;
29527   };
29528   static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
29529   static_assert( std::is_standard_layout<DeviceGroupRenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
29530 
29531   namespace layout
29532   {
29533     struct DeviceGroupSubmitInfo
29534     {
29535     protected:
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupSubmitInfo29536       DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = 0,
29537                              const uint32_t* pWaitSemaphoreDeviceIndices_ = nullptr,
29538                              uint32_t commandBufferCount_ = 0,
29539                              const uint32_t* pCommandBufferDeviceMasks_ = nullptr,
29540                              uint32_t signalSemaphoreCount_ = 0,
29541                              const uint32_t* pSignalSemaphoreDeviceIndices_ = nullptr )
29542         : waitSemaphoreCount( waitSemaphoreCount_ )
29543         , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
29544         , commandBufferCount( commandBufferCount_ )
29545         , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
29546         , signalSemaphoreCount( signalSemaphoreCount_ )
29547         , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
29548       {}
29549 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::layout::DeviceGroupSubmitInfo29550       DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs )
29551       {
29552         *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this) = rhs;
29553       }
29554 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupSubmitInfo29555       DeviceGroupSubmitInfo& operator=( VkDeviceGroupSubmitInfo const & rhs )
29556       {
29557         *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this) = rhs;
29558         return *this;
29559       }
29560 
29561     public:
29562       vk::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
29563       const void* pNext = nullptr;
29564       uint32_t waitSemaphoreCount;
29565       const uint32_t* pWaitSemaphoreDeviceIndices;
29566       uint32_t commandBufferCount;
29567       const uint32_t* pCommandBufferDeviceMasks;
29568       uint32_t signalSemaphoreCount;
29569       const uint32_t* pSignalSemaphoreDeviceIndices;
29570     };
29571     static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "layout struct and wrapper have different size!" );
29572   }
29573 
29574   struct DeviceGroupSubmitInfo : public layout::DeviceGroupSubmitInfo
29575   {
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29576     DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = 0,
29577                            const uint32_t* pWaitSemaphoreDeviceIndices_ = nullptr,
29578                            uint32_t commandBufferCount_ = 0,
29579                            const uint32_t* pCommandBufferDeviceMasks_ = nullptr,
29580                            uint32_t signalSemaphoreCount_ = 0,
29581                            const uint32_t* pSignalSemaphoreDeviceIndices_ = nullptr )
29582       : layout::DeviceGroupSubmitInfo( waitSemaphoreCount_, pWaitSemaphoreDeviceIndices_, commandBufferCount_, pCommandBufferDeviceMasks_, signalSemaphoreCount_, pSignalSemaphoreDeviceIndices_ )
29583     {}
29584 
DeviceGroupSubmitInfoVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29585     DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs )
29586       : layout::DeviceGroupSubmitInfo( rhs )
29587     {}
29588 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29589     DeviceGroupSubmitInfo& operator=( VkDeviceGroupSubmitInfo const & rhs )
29590     {
29591       *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this) = rhs;
29592       return *this;
29593     }
29594 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29595     DeviceGroupSubmitInfo & setPNext( const void* pNext_ )
29596     {
29597       pNext = pNext_;
29598       return *this;
29599     }
29600 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29601     DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
29602     {
29603       waitSemaphoreCount = waitSemaphoreCount_;
29604       return *this;
29605     }
29606 
setPWaitSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29607     DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ )
29608     {
29609       pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
29610       return *this;
29611     }
29612 
setCommandBufferCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29613     DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
29614     {
29615       commandBufferCount = commandBufferCount_;
29616       return *this;
29617     }
29618 
setPCommandBufferDeviceMasksVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29619     DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ )
29620     {
29621       pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
29622       return *this;
29623     }
29624 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29625     DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
29626     {
29627       signalSemaphoreCount = signalSemaphoreCount_;
29628       return *this;
29629     }
29630 
setPSignalSemaphoreDeviceIndicesVULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29631     DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ )
29632     {
29633       pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
29634       return *this;
29635     }
29636 
operator VkDeviceGroupSubmitInfo const&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29637     operator VkDeviceGroupSubmitInfo const&() const
29638     {
29639       return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
29640     }
29641 
operator VkDeviceGroupSubmitInfo&VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29642     operator VkDeviceGroupSubmitInfo &()
29643     {
29644       return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
29645     }
29646 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29647     bool operator==( DeviceGroupSubmitInfo const& rhs ) const
29648     {
29649       return ( sType == rhs.sType )
29650           && ( pNext == rhs.pNext )
29651           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
29652           && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
29653           && ( commandBufferCount == rhs.commandBufferCount )
29654           && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
29655           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
29656           && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
29657     }
29658 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo29659     bool operator!=( DeviceGroupSubmitInfo const& rhs ) const
29660     {
29661       return !operator==( rhs );
29662     }
29663 
29664   private:
29665     using layout::DeviceGroupSubmitInfo::sType;
29666   };
29667   static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
29668   static_assert( std::is_standard_layout<DeviceGroupSubmitInfo>::value, "struct wrapper is not a standard layout!" );
29669 
29670   namespace layout
29671   {
29672     struct DeviceGroupSwapchainCreateInfoKHR
29673     {
29674     protected:
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupSwapchainCreateInfoKHR29675       DeviceGroupSwapchainCreateInfoKHR( vk::DeviceGroupPresentModeFlagsKHR modes_ = vk::DeviceGroupPresentModeFlagsKHR() )
29676         : modes( modes_ )
29677       {}
29678 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DeviceGroupSwapchainCreateInfoKHR29679       DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
29680       {
29681         *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this) = rhs;
29682       }
29683 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceGroupSwapchainCreateInfoKHR29684       DeviceGroupSwapchainCreateInfoKHR& operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
29685       {
29686         *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this) = rhs;
29687         return *this;
29688       }
29689 
29690     public:
29691       vk::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
29692       const void* pNext = nullptr;
29693       vk::DeviceGroupPresentModeFlagsKHR modes;
29694     };
29695     static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "layout struct and wrapper have different size!" );
29696   }
29697 
29698   struct DeviceGroupSwapchainCreateInfoKHR : public layout::DeviceGroupSwapchainCreateInfoKHR
29699   {
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29700     DeviceGroupSwapchainCreateInfoKHR( vk::DeviceGroupPresentModeFlagsKHR modes_ = vk::DeviceGroupPresentModeFlagsKHR() )
29701       : layout::DeviceGroupSwapchainCreateInfoKHR( modes_ )
29702     {}
29703 
DeviceGroupSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29704     DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
29705       : layout::DeviceGroupSwapchainCreateInfoKHR( rhs )
29706     {}
29707 
operator =VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29708     DeviceGroupSwapchainCreateInfoKHR& operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
29709     {
29710       *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this) = rhs;
29711       return *this;
29712     }
29713 
setPNextVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29714     DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ )
29715     {
29716       pNext = pNext_;
29717       return *this;
29718     }
29719 
setModesVULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29720     DeviceGroupSwapchainCreateInfoKHR & setModes( vk::DeviceGroupPresentModeFlagsKHR modes_ )
29721     {
29722       modes = modes_;
29723       return *this;
29724     }
29725 
operator VkDeviceGroupSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29726     operator VkDeviceGroupSwapchainCreateInfoKHR const&() const
29727     {
29728       return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
29729     }
29730 
operator VkDeviceGroupSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29731     operator VkDeviceGroupSwapchainCreateInfoKHR &()
29732     {
29733       return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
29734     }
29735 
operator ==VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29736     bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const
29737     {
29738       return ( sType == rhs.sType )
29739           && ( pNext == rhs.pNext )
29740           && ( modes == rhs.modes );
29741     }
29742 
operator !=VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR29743     bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const
29744     {
29745       return !operator==( rhs );
29746     }
29747 
29748   private:
29749     using layout::DeviceGroupSwapchainCreateInfoKHR::sType;
29750   };
29751   static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
29752   static_assert( std::is_standard_layout<DeviceGroupSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
29753 
29754   namespace layout
29755   {
29756     struct DeviceMemoryOverallocationCreateInfoAMD
29757     {
29758     protected:
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::DeviceMemoryOverallocationCreateInfoAMD29759       DeviceMemoryOverallocationCreateInfoAMD( vk::MemoryOverallocationBehaviorAMD overallocationBehavior_ = vk::MemoryOverallocationBehaviorAMD::eDefault )
29760         : overallocationBehavior( overallocationBehavior_ )
29761       {}
29762 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::DeviceMemoryOverallocationCreateInfoAMD29763       DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
29764       {
29765         *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(this) = rhs;
29766       }
29767 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceMemoryOverallocationCreateInfoAMD29768       DeviceMemoryOverallocationCreateInfoAMD& operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
29769       {
29770         *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(this) = rhs;
29771         return *this;
29772       }
29773 
29774     public:
29775       vk::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
29776       const void* pNext = nullptr;
29777       vk::MemoryOverallocationBehaviorAMD overallocationBehavior;
29778     };
29779     static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "layout struct and wrapper have different size!" );
29780   }
29781 
29782   struct DeviceMemoryOverallocationCreateInfoAMD : public layout::DeviceMemoryOverallocationCreateInfoAMD
29783   {
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29784     DeviceMemoryOverallocationCreateInfoAMD( vk::MemoryOverallocationBehaviorAMD overallocationBehavior_ = vk::MemoryOverallocationBehaviorAMD::eDefault )
29785       : layout::DeviceMemoryOverallocationCreateInfoAMD( overallocationBehavior_ )
29786     {}
29787 
DeviceMemoryOverallocationCreateInfoAMDVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29788     DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
29789       : layout::DeviceMemoryOverallocationCreateInfoAMD( rhs )
29790     {}
29791 
operator =VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29792     DeviceMemoryOverallocationCreateInfoAMD& operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
29793     {
29794       *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(this) = rhs;
29795       return *this;
29796     }
29797 
setPNextVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29798     DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ )
29799     {
29800       pNext = pNext_;
29801       return *this;
29802     }
29803 
setOverallocationBehaviorVULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29804     DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( vk::MemoryOverallocationBehaviorAMD overallocationBehavior_ )
29805     {
29806       overallocationBehavior = overallocationBehavior_;
29807       return *this;
29808     }
29809 
operator VkDeviceMemoryOverallocationCreateInfoAMD const&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29810     operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const
29811     {
29812       return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
29813     }
29814 
operator VkDeviceMemoryOverallocationCreateInfoAMD&VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29815     operator VkDeviceMemoryOverallocationCreateInfoAMD &()
29816     {
29817       return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
29818     }
29819 
operator ==VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29820     bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const
29821     {
29822       return ( sType == rhs.sType )
29823           && ( pNext == rhs.pNext )
29824           && ( overallocationBehavior == rhs.overallocationBehavior );
29825     }
29826 
operator !=VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD29827     bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const
29828     {
29829       return !operator==( rhs );
29830     }
29831 
29832   private:
29833     using layout::DeviceMemoryOverallocationCreateInfoAMD::sType;
29834   };
29835   static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
29836   static_assert( std::is_standard_layout<DeviceMemoryOverallocationCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
29837 
29838   namespace layout
29839   {
29840     struct DeviceQueueGlobalPriorityCreateInfoEXT
29841     {
29842     protected:
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DeviceQueueGlobalPriorityCreateInfoEXT29843       DeviceQueueGlobalPriorityCreateInfoEXT( vk::QueueGlobalPriorityEXT globalPriority_ = vk::QueueGlobalPriorityEXT::eLow )
29844         : globalPriority( globalPriority_ )
29845       {}
29846 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::DeviceQueueGlobalPriorityCreateInfoEXT29847       DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
29848       {
29849         *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this) = rhs;
29850       }
29851 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceQueueGlobalPriorityCreateInfoEXT29852       DeviceQueueGlobalPriorityCreateInfoEXT& operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
29853       {
29854         *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this) = rhs;
29855         return *this;
29856       }
29857 
29858     public:
29859       vk::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
29860       const void* pNext = nullptr;
29861       vk::QueueGlobalPriorityEXT globalPriority;
29862     };
29863     static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "layout struct and wrapper have different size!" );
29864   }
29865 
29866   struct DeviceQueueGlobalPriorityCreateInfoEXT : public layout::DeviceQueueGlobalPriorityCreateInfoEXT
29867   {
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29868     DeviceQueueGlobalPriorityCreateInfoEXT( vk::QueueGlobalPriorityEXT globalPriority_ = vk::QueueGlobalPriorityEXT::eLow )
29869       : layout::DeviceQueueGlobalPriorityCreateInfoEXT( globalPriority_ )
29870     {}
29871 
DeviceQueueGlobalPriorityCreateInfoEXTVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29872     DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
29873       : layout::DeviceQueueGlobalPriorityCreateInfoEXT( rhs )
29874     {}
29875 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29876     DeviceQueueGlobalPriorityCreateInfoEXT& operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
29877     {
29878       *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this) = rhs;
29879       return *this;
29880     }
29881 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29882     DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ )
29883     {
29884       pNext = pNext_;
29885       return *this;
29886     }
29887 
setGlobalPriorityVULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29888     DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( vk::QueueGlobalPriorityEXT globalPriority_ )
29889     {
29890       globalPriority = globalPriority_;
29891       return *this;
29892     }
29893 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29894     operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const
29895     {
29896       return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
29897     }
29898 
operator VkDeviceQueueGlobalPriorityCreateInfoEXT&VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29899     operator VkDeviceQueueGlobalPriorityCreateInfoEXT &()
29900     {
29901       return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
29902     }
29903 
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29904     bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const
29905     {
29906       return ( sType == rhs.sType )
29907           && ( pNext == rhs.pNext )
29908           && ( globalPriority == rhs.globalPriority );
29909     }
29910 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT29911     bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const
29912     {
29913       return !operator==( rhs );
29914     }
29915 
29916   private:
29917     using layout::DeviceQueueGlobalPriorityCreateInfoEXT::sType;
29918   };
29919   static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
29920   static_assert( std::is_standard_layout<DeviceQueueGlobalPriorityCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
29921 
29922   namespace layout
29923   {
29924     struct DeviceQueueInfo2
29925     {
29926     protected:
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::layout::DeviceQueueInfo229927       DeviceQueueInfo2( vk::DeviceQueueCreateFlags flags_ = vk::DeviceQueueCreateFlags(),
29928                         uint32_t queueFamilyIndex_ = 0,
29929                         uint32_t queueIndex_ = 0 )
29930         : flags( flags_ )
29931         , queueFamilyIndex( queueFamilyIndex_ )
29932         , queueIndex( queueIndex_ )
29933       {}
29934 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::layout::DeviceQueueInfo229935       DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs )
29936       {
29937         *reinterpret_cast<VkDeviceQueueInfo2*>(this) = rhs;
29938       }
29939 
operator =VULKAN_HPP_NAMESPACE::layout::DeviceQueueInfo229940       DeviceQueueInfo2& operator=( VkDeviceQueueInfo2 const & rhs )
29941       {
29942         *reinterpret_cast<VkDeviceQueueInfo2*>(this) = rhs;
29943         return *this;
29944       }
29945 
29946     public:
29947       vk::StructureType sType = StructureType::eDeviceQueueInfo2;
29948       const void* pNext = nullptr;
29949       vk::DeviceQueueCreateFlags flags;
29950       uint32_t queueFamilyIndex;
29951       uint32_t queueIndex;
29952     };
29953     static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "layout struct and wrapper have different size!" );
29954   }
29955 
29956   struct DeviceQueueInfo2 : public layout::DeviceQueueInfo2
29957   {
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo229958     DeviceQueueInfo2( vk::DeviceQueueCreateFlags flags_ = vk::DeviceQueueCreateFlags(),
29959                       uint32_t queueFamilyIndex_ = 0,
29960                       uint32_t queueIndex_ = 0 )
29961       : layout::DeviceQueueInfo2( flags_, queueFamilyIndex_, queueIndex_ )
29962     {}
29963 
DeviceQueueInfo2VULKAN_HPP_NAMESPACE::DeviceQueueInfo229964     DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs )
29965       : layout::DeviceQueueInfo2( rhs )
29966     {}
29967 
operator =VULKAN_HPP_NAMESPACE::DeviceQueueInfo229968     DeviceQueueInfo2& operator=( VkDeviceQueueInfo2 const & rhs )
29969     {
29970       *reinterpret_cast<VkDeviceQueueInfo2*>(this) = rhs;
29971       return *this;
29972     }
29973 
setPNextVULKAN_HPP_NAMESPACE::DeviceQueueInfo229974     DeviceQueueInfo2 & setPNext( const void* pNext_ )
29975     {
29976       pNext = pNext_;
29977       return *this;
29978     }
29979 
setFlagsVULKAN_HPP_NAMESPACE::DeviceQueueInfo229980     DeviceQueueInfo2 & setFlags( vk::DeviceQueueCreateFlags flags_ )
29981     {
29982       flags = flags_;
29983       return *this;
29984     }
29985 
setQueueFamilyIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo229986     DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
29987     {
29988       queueFamilyIndex = queueFamilyIndex_;
29989       return *this;
29990     }
29991 
setQueueIndexVULKAN_HPP_NAMESPACE::DeviceQueueInfo229992     DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ )
29993     {
29994       queueIndex = queueIndex_;
29995       return *this;
29996     }
29997 
operator VkDeviceQueueInfo2 const&VULKAN_HPP_NAMESPACE::DeviceQueueInfo229998     operator VkDeviceQueueInfo2 const&() const
29999     {
30000       return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
30001     }
30002 
operator VkDeviceQueueInfo2&VULKAN_HPP_NAMESPACE::DeviceQueueInfo230003     operator VkDeviceQueueInfo2 &()
30004     {
30005       return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
30006     }
30007 
operator ==VULKAN_HPP_NAMESPACE::DeviceQueueInfo230008     bool operator==( DeviceQueueInfo2 const& rhs ) const
30009     {
30010       return ( sType == rhs.sType )
30011           && ( pNext == rhs.pNext )
30012           && ( flags == rhs.flags )
30013           && ( queueFamilyIndex == rhs.queueFamilyIndex )
30014           && ( queueIndex == rhs.queueIndex );
30015     }
30016 
operator !=VULKAN_HPP_NAMESPACE::DeviceQueueInfo230017     bool operator!=( DeviceQueueInfo2 const& rhs ) const
30018     {
30019       return !operator==( rhs );
30020     }
30021 
30022   private:
30023     using layout::DeviceQueueInfo2::sType;
30024   };
30025   static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
30026   static_assert( std::is_standard_layout<DeviceQueueInfo2>::value, "struct wrapper is not a standard layout!" );
30027 
30028   struct DispatchIndirectCommand
30029   {
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand30030     DispatchIndirectCommand( uint32_t x_ = 0,
30031                              uint32_t y_ = 0,
30032                              uint32_t z_ = 0 )
30033         : x( x_ )
30034         , y( y_ )
30035         , z( z_ )
30036     {}
30037 
DispatchIndirectCommandVULKAN_HPP_NAMESPACE::DispatchIndirectCommand30038     DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs )
30039     {
30040       *reinterpret_cast<VkDispatchIndirectCommand*>(this) = rhs;
30041     }
30042 
operator =VULKAN_HPP_NAMESPACE::DispatchIndirectCommand30043     DispatchIndirectCommand& operator=( VkDispatchIndirectCommand const & rhs )
30044     {
30045       *reinterpret_cast<VkDispatchIndirectCommand*>(this) = rhs;
30046       return *this;
30047     }
30048 
setXVULKAN_HPP_NAMESPACE::DispatchIndirectCommand30049     DispatchIndirectCommand & setX( uint32_t x_ )
30050     {
30051       x = x_;
30052       return *this;
30053     }
30054 
setYVULKAN_HPP_NAMESPACE::DispatchIndirectCommand30055     DispatchIndirectCommand & setY( uint32_t y_ )
30056     {
30057       y = y_;
30058       return *this;
30059     }
30060 
setZVULKAN_HPP_NAMESPACE::DispatchIndirectCommand30061     DispatchIndirectCommand & setZ( uint32_t z_ )
30062     {
30063       z = z_;
30064       return *this;
30065     }
30066 
operator VkDispatchIndirectCommand const&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand30067     operator VkDispatchIndirectCommand const&() const
30068     {
30069       return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
30070     }
30071 
operator VkDispatchIndirectCommand&VULKAN_HPP_NAMESPACE::DispatchIndirectCommand30072     operator VkDispatchIndirectCommand &()
30073     {
30074       return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
30075     }
30076 
operator ==VULKAN_HPP_NAMESPACE::DispatchIndirectCommand30077     bool operator==( DispatchIndirectCommand const& rhs ) const
30078     {
30079       return ( x == rhs.x )
30080           && ( y == rhs.y )
30081           && ( z == rhs.z );
30082     }
30083 
operator !=VULKAN_HPP_NAMESPACE::DispatchIndirectCommand30084     bool operator!=( DispatchIndirectCommand const& rhs ) const
30085     {
30086       return !operator==( rhs );
30087     }
30088 
30089   public:
30090     uint32_t x;
30091     uint32_t y;
30092     uint32_t z;
30093   };
30094   static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
30095   static_assert( std::is_standard_layout<DispatchIndirectCommand>::value, "struct wrapper is not a standard layout!" );
30096 
30097   namespace layout
30098   {
30099     struct DisplayEventInfoEXT
30100     {
30101     protected:
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::layout::DisplayEventInfoEXT30102       DisplayEventInfoEXT( vk::DisplayEventTypeEXT displayEvent_ = vk::DisplayEventTypeEXT::eFirstPixelOut )
30103         : displayEvent( displayEvent_ )
30104       {}
30105 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::layout::DisplayEventInfoEXT30106       DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs )
30107       {
30108         *reinterpret_cast<VkDisplayEventInfoEXT*>(this) = rhs;
30109       }
30110 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayEventInfoEXT30111       DisplayEventInfoEXT& operator=( VkDisplayEventInfoEXT const & rhs )
30112       {
30113         *reinterpret_cast<VkDisplayEventInfoEXT*>(this) = rhs;
30114         return *this;
30115       }
30116 
30117     public:
30118       vk::StructureType sType = StructureType::eDisplayEventInfoEXT;
30119       const void* pNext = nullptr;
30120       vk::DisplayEventTypeEXT displayEvent;
30121     };
30122     static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "layout struct and wrapper have different size!" );
30123   }
30124 
30125   struct DisplayEventInfoEXT : public layout::DisplayEventInfoEXT
30126   {
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30127     DisplayEventInfoEXT( vk::DisplayEventTypeEXT displayEvent_ = vk::DisplayEventTypeEXT::eFirstPixelOut )
30128       : layout::DisplayEventInfoEXT( displayEvent_ )
30129     {}
30130 
DisplayEventInfoEXTVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30131     DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs )
30132       : layout::DisplayEventInfoEXT( rhs )
30133     {}
30134 
operator =VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30135     DisplayEventInfoEXT& operator=( VkDisplayEventInfoEXT const & rhs )
30136     {
30137       *reinterpret_cast<VkDisplayEventInfoEXT*>(this) = rhs;
30138       return *this;
30139     }
30140 
setPNextVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30141     DisplayEventInfoEXT & setPNext( const void* pNext_ )
30142     {
30143       pNext = pNext_;
30144       return *this;
30145     }
30146 
setDisplayEventVULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30147     DisplayEventInfoEXT & setDisplayEvent( vk::DisplayEventTypeEXT displayEvent_ )
30148     {
30149       displayEvent = displayEvent_;
30150       return *this;
30151     }
30152 
operator VkDisplayEventInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30153     operator VkDisplayEventInfoEXT const&() const
30154     {
30155       return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
30156     }
30157 
operator VkDisplayEventInfoEXT&VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30158     operator VkDisplayEventInfoEXT &()
30159     {
30160       return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
30161     }
30162 
operator ==VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30163     bool operator==( DisplayEventInfoEXT const& rhs ) const
30164     {
30165       return ( sType == rhs.sType )
30166           && ( pNext == rhs.pNext )
30167           && ( displayEvent == rhs.displayEvent );
30168     }
30169 
operator !=VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT30170     bool operator!=( DisplayEventInfoEXT const& rhs ) const
30171     {
30172       return !operator==( rhs );
30173     }
30174 
30175   private:
30176     using layout::DisplayEventInfoEXT::sType;
30177   };
30178   static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
30179   static_assert( std::is_standard_layout<DisplayEventInfoEXT>::value, "struct wrapper is not a standard layout!" );
30180 
30181   struct DisplayModeParametersKHR
30182   {
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30183     DisplayModeParametersKHR( vk::Extent2D visibleRegion_ = vk::Extent2D(),
30184                               uint32_t refreshRate_ = 0 )
30185         : visibleRegion( visibleRegion_ )
30186         , refreshRate( refreshRate_ )
30187     {}
30188 
DisplayModeParametersKHRVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30189     DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs )
30190     {
30191       *reinterpret_cast<VkDisplayModeParametersKHR*>(this) = rhs;
30192     }
30193 
operator =VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30194     DisplayModeParametersKHR& operator=( VkDisplayModeParametersKHR const & rhs )
30195     {
30196       *reinterpret_cast<VkDisplayModeParametersKHR*>(this) = rhs;
30197       return *this;
30198     }
30199 
setVisibleRegionVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30200     DisplayModeParametersKHR & setVisibleRegion( vk::Extent2D visibleRegion_ )
30201     {
30202       visibleRegion = visibleRegion_;
30203       return *this;
30204     }
30205 
setRefreshRateVULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30206     DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ )
30207     {
30208       refreshRate = refreshRate_;
30209       return *this;
30210     }
30211 
operator VkDisplayModeParametersKHR const&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30212     operator VkDisplayModeParametersKHR const&() const
30213     {
30214       return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
30215     }
30216 
operator VkDisplayModeParametersKHR&VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30217     operator VkDisplayModeParametersKHR &()
30218     {
30219       return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
30220     }
30221 
operator ==VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30222     bool operator==( DisplayModeParametersKHR const& rhs ) const
30223     {
30224       return ( visibleRegion == rhs.visibleRegion )
30225           && ( refreshRate == rhs.refreshRate );
30226     }
30227 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR30228     bool operator!=( DisplayModeParametersKHR const& rhs ) const
30229     {
30230       return !operator==( rhs );
30231     }
30232 
30233   public:
30234     vk::Extent2D visibleRegion;
30235     uint32_t refreshRate;
30236   };
30237   static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
30238   static_assert( std::is_standard_layout<DisplayModeParametersKHR>::value, "struct wrapper is not a standard layout!" );
30239 
30240   namespace layout
30241   {
30242     struct DisplayModeCreateInfoKHR
30243     {
30244     protected:
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplayModeCreateInfoKHR30245       DisplayModeCreateInfoKHR( vk::DisplayModeCreateFlagsKHR flags_ = vk::DisplayModeCreateFlagsKHR(),
30246                                 vk::DisplayModeParametersKHR parameters_ = vk::DisplayModeParametersKHR() )
30247         : flags( flags_ )
30248         , parameters( parameters_ )
30249       {}
30250 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplayModeCreateInfoKHR30251       DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs )
30252       {
30253         *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this) = rhs;
30254       }
30255 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayModeCreateInfoKHR30256       DisplayModeCreateInfoKHR& operator=( VkDisplayModeCreateInfoKHR const & rhs )
30257       {
30258         *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this) = rhs;
30259         return *this;
30260       }
30261 
30262     public:
30263       vk::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
30264       const void* pNext = nullptr;
30265       vk::DisplayModeCreateFlagsKHR flags;
30266       vk::DisplayModeParametersKHR parameters;
30267     };
30268     static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "layout struct and wrapper have different size!" );
30269   }
30270 
30271   struct DisplayModeCreateInfoKHR : public layout::DisplayModeCreateInfoKHR
30272   {
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30273     DisplayModeCreateInfoKHR( vk::DisplayModeCreateFlagsKHR flags_ = vk::DisplayModeCreateFlagsKHR(),
30274                               vk::DisplayModeParametersKHR parameters_ = vk::DisplayModeParametersKHR() )
30275       : layout::DisplayModeCreateInfoKHR( flags_, parameters_ )
30276     {}
30277 
DisplayModeCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30278     DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs )
30279       : layout::DisplayModeCreateInfoKHR( rhs )
30280     {}
30281 
operator =VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30282     DisplayModeCreateInfoKHR& operator=( VkDisplayModeCreateInfoKHR const & rhs )
30283     {
30284       *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this) = rhs;
30285       return *this;
30286     }
30287 
setPNextVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30288     DisplayModeCreateInfoKHR & setPNext( const void* pNext_ )
30289     {
30290       pNext = pNext_;
30291       return *this;
30292     }
30293 
setFlagsVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30294     DisplayModeCreateInfoKHR & setFlags( vk::DisplayModeCreateFlagsKHR flags_ )
30295     {
30296       flags = flags_;
30297       return *this;
30298     }
30299 
setParametersVULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30300     DisplayModeCreateInfoKHR & setParameters( vk::DisplayModeParametersKHR parameters_ )
30301     {
30302       parameters = parameters_;
30303       return *this;
30304     }
30305 
operator VkDisplayModeCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30306     operator VkDisplayModeCreateInfoKHR const&() const
30307     {
30308       return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
30309     }
30310 
operator VkDisplayModeCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30311     operator VkDisplayModeCreateInfoKHR &()
30312     {
30313       return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
30314     }
30315 
operator ==VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30316     bool operator==( DisplayModeCreateInfoKHR const& rhs ) const
30317     {
30318       return ( sType == rhs.sType )
30319           && ( pNext == rhs.pNext )
30320           && ( flags == rhs.flags )
30321           && ( parameters == rhs.parameters );
30322     }
30323 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR30324     bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const
30325     {
30326       return !operator==( rhs );
30327     }
30328 
30329   private:
30330     using layout::DisplayModeCreateInfoKHR::sType;
30331   };
30332   static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
30333   static_assert( std::is_standard_layout<DisplayModeCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
30334 
30335   struct DisplayModePropertiesKHR
30336   {
operator VkDisplayModePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR30337     operator VkDisplayModePropertiesKHR const&() const
30338     {
30339       return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
30340     }
30341 
operator VkDisplayModePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR30342     operator VkDisplayModePropertiesKHR &()
30343     {
30344       return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
30345     }
30346 
operator ==VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR30347     bool operator==( DisplayModePropertiesKHR const& rhs ) const
30348     {
30349       return ( displayMode == rhs.displayMode )
30350           && ( parameters == rhs.parameters );
30351     }
30352 
operator !=VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR30353     bool operator!=( DisplayModePropertiesKHR const& rhs ) const
30354     {
30355       return !operator==( rhs );
30356     }
30357 
30358   public:
30359     vk::DisplayModeKHR displayMode;
30360     vk::DisplayModeParametersKHR parameters;
30361   };
30362   static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
30363   static_assert( std::is_standard_layout<DisplayModePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
30364 
30365   namespace layout
30366   {
30367     struct DisplayModeProperties2KHR
30368     {
30369     protected:
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayModeProperties2KHR30370       DisplayModeProperties2KHR( vk::DisplayModePropertiesKHR displayModeProperties_ = vk::DisplayModePropertiesKHR() )
30371         : displayModeProperties( displayModeProperties_ )
30372       {}
30373 
DisplayModeProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayModeProperties2KHR30374       DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs )
30375       {
30376         *reinterpret_cast<VkDisplayModeProperties2KHR*>(this) = rhs;
30377       }
30378 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayModeProperties2KHR30379       DisplayModeProperties2KHR& operator=( VkDisplayModeProperties2KHR const & rhs )
30380       {
30381         *reinterpret_cast<VkDisplayModeProperties2KHR*>(this) = rhs;
30382         return *this;
30383       }
30384 
30385     public:
30386       vk::StructureType sType = StructureType::eDisplayModeProperties2KHR;
30387       void* pNext = nullptr;
30388       vk::DisplayModePropertiesKHR displayModeProperties;
30389     };
30390     static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "layout struct and wrapper have different size!" );
30391   }
30392 
30393   struct DisplayModeProperties2KHR : public layout::DisplayModeProperties2KHR
30394   {
operator VkDisplayModeProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR30395     operator VkDisplayModeProperties2KHR const&() const
30396     {
30397       return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
30398     }
30399 
operator VkDisplayModeProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR30400     operator VkDisplayModeProperties2KHR &()
30401     {
30402       return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
30403     }
30404 
operator ==VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR30405     bool operator==( DisplayModeProperties2KHR const& rhs ) const
30406     {
30407       return ( sType == rhs.sType )
30408           && ( pNext == rhs.pNext )
30409           && ( displayModeProperties == rhs.displayModeProperties );
30410     }
30411 
operator !=VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR30412     bool operator!=( DisplayModeProperties2KHR const& rhs ) const
30413     {
30414       return !operator==( rhs );
30415     }
30416 
30417   private:
30418     using layout::DisplayModeProperties2KHR::sType;
30419   };
30420   static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
30421   static_assert( std::is_standard_layout<DisplayModeProperties2KHR>::value, "struct wrapper is not a standard layout!" );
30422 
30423   namespace layout
30424   {
30425     struct DisplayNativeHdrSurfaceCapabilitiesAMD
30426     {
30427     protected:
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::layout::DisplayNativeHdrSurfaceCapabilitiesAMD30428       DisplayNativeHdrSurfaceCapabilitiesAMD( vk::Bool32 localDimmingSupport_ = 0 )
30429         : localDimmingSupport( localDimmingSupport_ )
30430       {}
30431 
DisplayNativeHdrSurfaceCapabilitiesAMDVULKAN_HPP_NAMESPACE::layout::DisplayNativeHdrSurfaceCapabilitiesAMD30432       DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs )
30433       {
30434         *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(this) = rhs;
30435       }
30436 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayNativeHdrSurfaceCapabilitiesAMD30437       DisplayNativeHdrSurfaceCapabilitiesAMD& operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs )
30438       {
30439         *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(this) = rhs;
30440         return *this;
30441       }
30442 
30443     public:
30444       vk::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
30445       void* pNext = nullptr;
30446       vk::Bool32 localDimmingSupport;
30447     };
30448     static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "layout struct and wrapper have different size!" );
30449   }
30450 
30451   struct DisplayNativeHdrSurfaceCapabilitiesAMD : public layout::DisplayNativeHdrSurfaceCapabilitiesAMD
30452   {
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD30453     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const
30454     {
30455       return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
30456     }
30457 
operator VkDisplayNativeHdrSurfaceCapabilitiesAMD&VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD30458     operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &()
30459     {
30460       return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
30461     }
30462 
operator ==VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD30463     bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const
30464     {
30465       return ( sType == rhs.sType )
30466           && ( pNext == rhs.pNext )
30467           && ( localDimmingSupport == rhs.localDimmingSupport );
30468     }
30469 
operator !=VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD30470     bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const
30471     {
30472       return !operator==( rhs );
30473     }
30474 
30475   private:
30476     using layout::DisplayNativeHdrSurfaceCapabilitiesAMD::sType;
30477   };
30478   static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
30479   static_assert( std::is_standard_layout<DisplayNativeHdrSurfaceCapabilitiesAMD>::value, "struct wrapper is not a standard layout!" );
30480 
30481   struct DisplayPlaneCapabilitiesKHR
30482   {
operator VkDisplayPlaneCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR30483     operator VkDisplayPlaneCapabilitiesKHR const&() const
30484     {
30485       return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
30486     }
30487 
operator VkDisplayPlaneCapabilitiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR30488     operator VkDisplayPlaneCapabilitiesKHR &()
30489     {
30490       return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
30491     }
30492 
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR30493     bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const
30494     {
30495       return ( supportedAlpha == rhs.supportedAlpha )
30496           && ( minSrcPosition == rhs.minSrcPosition )
30497           && ( maxSrcPosition == rhs.maxSrcPosition )
30498           && ( minSrcExtent == rhs.minSrcExtent )
30499           && ( maxSrcExtent == rhs.maxSrcExtent )
30500           && ( minDstPosition == rhs.minDstPosition )
30501           && ( maxDstPosition == rhs.maxDstPosition )
30502           && ( minDstExtent == rhs.minDstExtent )
30503           && ( maxDstExtent == rhs.maxDstExtent );
30504     }
30505 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR30506     bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const
30507     {
30508       return !operator==( rhs );
30509     }
30510 
30511   public:
30512     vk::DisplayPlaneAlphaFlagsKHR supportedAlpha;
30513     vk::Offset2D minSrcPosition;
30514     vk::Offset2D maxSrcPosition;
30515     vk::Extent2D minSrcExtent;
30516     vk::Extent2D maxSrcExtent;
30517     vk::Offset2D minDstPosition;
30518     vk::Offset2D maxDstPosition;
30519     vk::Extent2D minDstExtent;
30520     vk::Extent2D maxDstExtent;
30521   };
30522   static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
30523   static_assert( std::is_standard_layout<DisplayPlaneCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
30524 
30525   namespace layout
30526   {
30527     struct DisplayPlaneCapabilities2KHR
30528     {
30529     protected:
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneCapabilities2KHR30530       DisplayPlaneCapabilities2KHR( vk::DisplayPlaneCapabilitiesKHR capabilities_ = vk::DisplayPlaneCapabilitiesKHR() )
30531         : capabilities( capabilities_ )
30532       {}
30533 
DisplayPlaneCapabilities2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneCapabilities2KHR30534       DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs )
30535       {
30536         *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>(this) = rhs;
30537       }
30538 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayPlaneCapabilities2KHR30539       DisplayPlaneCapabilities2KHR& operator=( VkDisplayPlaneCapabilities2KHR const & rhs )
30540       {
30541         *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>(this) = rhs;
30542         return *this;
30543       }
30544 
30545     public:
30546       vk::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
30547       void* pNext = nullptr;
30548       vk::DisplayPlaneCapabilitiesKHR capabilities;
30549     };
30550     static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "layout struct and wrapper have different size!" );
30551   }
30552 
30553   struct DisplayPlaneCapabilities2KHR : public layout::DisplayPlaneCapabilities2KHR
30554   {
operator VkDisplayPlaneCapabilities2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR30555     operator VkDisplayPlaneCapabilities2KHR const&() const
30556     {
30557       return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
30558     }
30559 
operator VkDisplayPlaneCapabilities2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR30560     operator VkDisplayPlaneCapabilities2KHR &()
30561     {
30562       return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
30563     }
30564 
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR30565     bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const
30566     {
30567       return ( sType == rhs.sType )
30568           && ( pNext == rhs.pNext )
30569           && ( capabilities == rhs.capabilities );
30570     }
30571 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR30572     bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const
30573     {
30574       return !operator==( rhs );
30575     }
30576 
30577   private:
30578     using layout::DisplayPlaneCapabilities2KHR::sType;
30579   };
30580   static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
30581   static_assert( std::is_standard_layout<DisplayPlaneCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
30582 
30583   namespace layout
30584   {
30585     struct DisplayPlaneInfo2KHR
30586     {
30587     protected:
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneInfo2KHR30588       DisplayPlaneInfo2KHR( vk::DisplayModeKHR mode_ = vk::DisplayModeKHR(),
30589                             uint32_t planeIndex_ = 0 )
30590         : mode( mode_ )
30591         , planeIndex( planeIndex_ )
30592       {}
30593 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneInfo2KHR30594       DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs )
30595       {
30596         *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this) = rhs;
30597       }
30598 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayPlaneInfo2KHR30599       DisplayPlaneInfo2KHR& operator=( VkDisplayPlaneInfo2KHR const & rhs )
30600       {
30601         *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this) = rhs;
30602         return *this;
30603       }
30604 
30605     public:
30606       vk::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
30607       const void* pNext = nullptr;
30608       vk::DisplayModeKHR mode;
30609       uint32_t planeIndex;
30610     };
30611     static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "layout struct and wrapper have different size!" );
30612   }
30613 
30614   struct DisplayPlaneInfo2KHR : public layout::DisplayPlaneInfo2KHR
30615   {
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30616     DisplayPlaneInfo2KHR( vk::DisplayModeKHR mode_ = vk::DisplayModeKHR(),
30617                           uint32_t planeIndex_ = 0 )
30618       : layout::DisplayPlaneInfo2KHR( mode_, planeIndex_ )
30619     {}
30620 
DisplayPlaneInfo2KHRVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30621     DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs )
30622       : layout::DisplayPlaneInfo2KHR( rhs )
30623     {}
30624 
operator =VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30625     DisplayPlaneInfo2KHR& operator=( VkDisplayPlaneInfo2KHR const & rhs )
30626     {
30627       *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this) = rhs;
30628       return *this;
30629     }
30630 
setPNextVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30631     DisplayPlaneInfo2KHR & setPNext( const void* pNext_ )
30632     {
30633       pNext = pNext_;
30634       return *this;
30635     }
30636 
setModeVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30637     DisplayPlaneInfo2KHR & setMode( vk::DisplayModeKHR mode_ )
30638     {
30639       mode = mode_;
30640       return *this;
30641     }
30642 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30643     DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ )
30644     {
30645       planeIndex = planeIndex_;
30646       return *this;
30647     }
30648 
operator VkDisplayPlaneInfo2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30649     operator VkDisplayPlaneInfo2KHR const&() const
30650     {
30651       return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
30652     }
30653 
operator VkDisplayPlaneInfo2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30654     operator VkDisplayPlaneInfo2KHR &()
30655     {
30656       return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
30657     }
30658 
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30659     bool operator==( DisplayPlaneInfo2KHR const& rhs ) const
30660     {
30661       return ( sType == rhs.sType )
30662           && ( pNext == rhs.pNext )
30663           && ( mode == rhs.mode )
30664           && ( planeIndex == rhs.planeIndex );
30665     }
30666 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR30667     bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const
30668     {
30669       return !operator==( rhs );
30670     }
30671 
30672   private:
30673     using layout::DisplayPlaneInfo2KHR::sType;
30674   };
30675   static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
30676   static_assert( std::is_standard_layout<DisplayPlaneInfo2KHR>::value, "struct wrapper is not a standard layout!" );
30677 
30678   struct DisplayPlanePropertiesKHR
30679   {
operator VkDisplayPlanePropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR30680     operator VkDisplayPlanePropertiesKHR const&() const
30681     {
30682       return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
30683     }
30684 
operator VkDisplayPlanePropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR30685     operator VkDisplayPlanePropertiesKHR &()
30686     {
30687       return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
30688     }
30689 
operator ==VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR30690     bool operator==( DisplayPlanePropertiesKHR const& rhs ) const
30691     {
30692       return ( currentDisplay == rhs.currentDisplay )
30693           && ( currentStackIndex == rhs.currentStackIndex );
30694     }
30695 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR30696     bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const
30697     {
30698       return !operator==( rhs );
30699     }
30700 
30701   public:
30702     vk::DisplayKHR currentDisplay;
30703     uint32_t currentStackIndex;
30704   };
30705   static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
30706   static_assert( std::is_standard_layout<DisplayPlanePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
30707 
30708   namespace layout
30709   {
30710     struct DisplayPlaneProperties2KHR
30711     {
30712     protected:
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneProperties2KHR30713       DisplayPlaneProperties2KHR( vk::DisplayPlanePropertiesKHR displayPlaneProperties_ = vk::DisplayPlanePropertiesKHR() )
30714         : displayPlaneProperties( displayPlaneProperties_ )
30715       {}
30716 
DisplayPlaneProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayPlaneProperties2KHR30717       DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs )
30718       {
30719         *reinterpret_cast<VkDisplayPlaneProperties2KHR*>(this) = rhs;
30720       }
30721 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayPlaneProperties2KHR30722       DisplayPlaneProperties2KHR& operator=( VkDisplayPlaneProperties2KHR const & rhs )
30723       {
30724         *reinterpret_cast<VkDisplayPlaneProperties2KHR*>(this) = rhs;
30725         return *this;
30726       }
30727 
30728     public:
30729       vk::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
30730       void* pNext = nullptr;
30731       vk::DisplayPlanePropertiesKHR displayPlaneProperties;
30732     };
30733     static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "layout struct and wrapper have different size!" );
30734   }
30735 
30736   struct DisplayPlaneProperties2KHR : public layout::DisplayPlaneProperties2KHR
30737   {
operator VkDisplayPlaneProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR30738     operator VkDisplayPlaneProperties2KHR const&() const
30739     {
30740       return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
30741     }
30742 
operator VkDisplayPlaneProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR30743     operator VkDisplayPlaneProperties2KHR &()
30744     {
30745       return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
30746     }
30747 
operator ==VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR30748     bool operator==( DisplayPlaneProperties2KHR const& rhs ) const
30749     {
30750       return ( sType == rhs.sType )
30751           && ( pNext == rhs.pNext )
30752           && ( displayPlaneProperties == rhs.displayPlaneProperties );
30753     }
30754 
operator !=VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR30755     bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const
30756     {
30757       return !operator==( rhs );
30758     }
30759 
30760   private:
30761     using layout::DisplayPlaneProperties2KHR::sType;
30762   };
30763   static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
30764   static_assert( std::is_standard_layout<DisplayPlaneProperties2KHR>::value, "struct wrapper is not a standard layout!" );
30765 
30766   namespace layout
30767   {
30768     struct DisplayPowerInfoEXT
30769     {
30770     protected:
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::layout::DisplayPowerInfoEXT30771       DisplayPowerInfoEXT( vk::DisplayPowerStateEXT powerState_ = vk::DisplayPowerStateEXT::eOff )
30772         : powerState( powerState_ )
30773       {}
30774 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::layout::DisplayPowerInfoEXT30775       DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs )
30776       {
30777         *reinterpret_cast<VkDisplayPowerInfoEXT*>(this) = rhs;
30778       }
30779 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayPowerInfoEXT30780       DisplayPowerInfoEXT& operator=( VkDisplayPowerInfoEXT const & rhs )
30781       {
30782         *reinterpret_cast<VkDisplayPowerInfoEXT*>(this) = rhs;
30783         return *this;
30784       }
30785 
30786     public:
30787       vk::StructureType sType = StructureType::eDisplayPowerInfoEXT;
30788       const void* pNext = nullptr;
30789       vk::DisplayPowerStateEXT powerState;
30790     };
30791     static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "layout struct and wrapper have different size!" );
30792   }
30793 
30794   struct DisplayPowerInfoEXT : public layout::DisplayPowerInfoEXT
30795   {
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30796     DisplayPowerInfoEXT( vk::DisplayPowerStateEXT powerState_ = vk::DisplayPowerStateEXT::eOff )
30797       : layout::DisplayPowerInfoEXT( powerState_ )
30798     {}
30799 
DisplayPowerInfoEXTVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30800     DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs )
30801       : layout::DisplayPowerInfoEXT( rhs )
30802     {}
30803 
operator =VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30804     DisplayPowerInfoEXT& operator=( VkDisplayPowerInfoEXT const & rhs )
30805     {
30806       *reinterpret_cast<VkDisplayPowerInfoEXT*>(this) = rhs;
30807       return *this;
30808     }
30809 
setPNextVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30810     DisplayPowerInfoEXT & setPNext( const void* pNext_ )
30811     {
30812       pNext = pNext_;
30813       return *this;
30814     }
30815 
setPowerStateVULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30816     DisplayPowerInfoEXT & setPowerState( vk::DisplayPowerStateEXT powerState_ )
30817     {
30818       powerState = powerState_;
30819       return *this;
30820     }
30821 
operator VkDisplayPowerInfoEXT const&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30822     operator VkDisplayPowerInfoEXT const&() const
30823     {
30824       return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
30825     }
30826 
operator VkDisplayPowerInfoEXT&VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30827     operator VkDisplayPowerInfoEXT &()
30828     {
30829       return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
30830     }
30831 
operator ==VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30832     bool operator==( DisplayPowerInfoEXT const& rhs ) const
30833     {
30834       return ( sType == rhs.sType )
30835           && ( pNext == rhs.pNext )
30836           && ( powerState == rhs.powerState );
30837     }
30838 
operator !=VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT30839     bool operator!=( DisplayPowerInfoEXT const& rhs ) const
30840     {
30841       return !operator==( rhs );
30842     }
30843 
30844   private:
30845     using layout::DisplayPowerInfoEXT::sType;
30846   };
30847   static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
30848   static_assert( std::is_standard_layout<DisplayPowerInfoEXT>::value, "struct wrapper is not a standard layout!" );
30849 
30850   namespace layout
30851   {
30852     struct DisplayPresentInfoKHR
30853     {
30854     protected:
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplayPresentInfoKHR30855       DisplayPresentInfoKHR( vk::Rect2D srcRect_ = vk::Rect2D(),
30856                              vk::Rect2D dstRect_ = vk::Rect2D(),
30857                              vk::Bool32 persistent_ = 0 )
30858         : srcRect( srcRect_ )
30859         , dstRect( dstRect_ )
30860         , persistent( persistent_ )
30861       {}
30862 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplayPresentInfoKHR30863       DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs )
30864       {
30865         *reinterpret_cast<VkDisplayPresentInfoKHR*>(this) = rhs;
30866       }
30867 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayPresentInfoKHR30868       DisplayPresentInfoKHR& operator=( VkDisplayPresentInfoKHR const & rhs )
30869       {
30870         *reinterpret_cast<VkDisplayPresentInfoKHR*>(this) = rhs;
30871         return *this;
30872       }
30873 
30874     public:
30875       vk::StructureType sType = StructureType::eDisplayPresentInfoKHR;
30876       const void* pNext = nullptr;
30877       vk::Rect2D srcRect;
30878       vk::Rect2D dstRect;
30879       vk::Bool32 persistent;
30880     };
30881     static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "layout struct and wrapper have different size!" );
30882   }
30883 
30884   struct DisplayPresentInfoKHR : public layout::DisplayPresentInfoKHR
30885   {
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30886     DisplayPresentInfoKHR( vk::Rect2D srcRect_ = vk::Rect2D(),
30887                            vk::Rect2D dstRect_ = vk::Rect2D(),
30888                            vk::Bool32 persistent_ = 0 )
30889       : layout::DisplayPresentInfoKHR( srcRect_, dstRect_, persistent_ )
30890     {}
30891 
DisplayPresentInfoKHRVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30892     DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs )
30893       : layout::DisplayPresentInfoKHR( rhs )
30894     {}
30895 
operator =VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30896     DisplayPresentInfoKHR& operator=( VkDisplayPresentInfoKHR const & rhs )
30897     {
30898       *reinterpret_cast<VkDisplayPresentInfoKHR*>(this) = rhs;
30899       return *this;
30900     }
30901 
setPNextVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30902     DisplayPresentInfoKHR & setPNext( const void* pNext_ )
30903     {
30904       pNext = pNext_;
30905       return *this;
30906     }
30907 
setSrcRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30908     DisplayPresentInfoKHR & setSrcRect( vk::Rect2D srcRect_ )
30909     {
30910       srcRect = srcRect_;
30911       return *this;
30912     }
30913 
setDstRectVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30914     DisplayPresentInfoKHR & setDstRect( vk::Rect2D dstRect_ )
30915     {
30916       dstRect = dstRect_;
30917       return *this;
30918     }
30919 
setPersistentVULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30920     DisplayPresentInfoKHR & setPersistent( vk::Bool32 persistent_ )
30921     {
30922       persistent = persistent_;
30923       return *this;
30924     }
30925 
operator VkDisplayPresentInfoKHR const&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30926     operator VkDisplayPresentInfoKHR const&() const
30927     {
30928       return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
30929     }
30930 
operator VkDisplayPresentInfoKHR&VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30931     operator VkDisplayPresentInfoKHR &()
30932     {
30933       return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
30934     }
30935 
operator ==VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30936     bool operator==( DisplayPresentInfoKHR const& rhs ) const
30937     {
30938       return ( sType == rhs.sType )
30939           && ( pNext == rhs.pNext )
30940           && ( srcRect == rhs.srcRect )
30941           && ( dstRect == rhs.dstRect )
30942           && ( persistent == rhs.persistent );
30943     }
30944 
operator !=VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR30945     bool operator!=( DisplayPresentInfoKHR const& rhs ) const
30946     {
30947       return !operator==( rhs );
30948     }
30949 
30950   private:
30951     using layout::DisplayPresentInfoKHR::sType;
30952   };
30953   static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
30954   static_assert( std::is_standard_layout<DisplayPresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
30955 
30956   struct DisplayPropertiesKHR
30957   {
operator VkDisplayPropertiesKHR const&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR30958     operator VkDisplayPropertiesKHR const&() const
30959     {
30960       return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
30961     }
30962 
operator VkDisplayPropertiesKHR&VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR30963     operator VkDisplayPropertiesKHR &()
30964     {
30965       return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
30966     }
30967 
operator ==VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR30968     bool operator==( DisplayPropertiesKHR const& rhs ) const
30969     {
30970       return ( display == rhs.display )
30971           && ( displayName == rhs.displayName )
30972           && ( physicalDimensions == rhs.physicalDimensions )
30973           && ( physicalResolution == rhs.physicalResolution )
30974           && ( supportedTransforms == rhs.supportedTransforms )
30975           && ( planeReorderPossible == rhs.planeReorderPossible )
30976           && ( persistentContent == rhs.persistentContent );
30977     }
30978 
operator !=VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR30979     bool operator!=( DisplayPropertiesKHR const& rhs ) const
30980     {
30981       return !operator==( rhs );
30982     }
30983 
30984   public:
30985     vk::DisplayKHR display;
30986     const char* displayName;
30987     vk::Extent2D physicalDimensions;
30988     vk::Extent2D physicalResolution;
30989     vk::SurfaceTransformFlagsKHR supportedTransforms;
30990     vk::Bool32 planeReorderPossible;
30991     vk::Bool32 persistentContent;
30992   };
30993   static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
30994   static_assert( std::is_standard_layout<DisplayPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
30995 
30996   namespace layout
30997   {
30998     struct DisplayProperties2KHR
30999     {
31000     protected:
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayProperties2KHR31001       DisplayProperties2KHR( vk::DisplayPropertiesKHR displayProperties_ = vk::DisplayPropertiesKHR() )
31002         : displayProperties( displayProperties_ )
31003       {}
31004 
DisplayProperties2KHRVULKAN_HPP_NAMESPACE::layout::DisplayProperties2KHR31005       DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs )
31006       {
31007         *reinterpret_cast<VkDisplayProperties2KHR*>(this) = rhs;
31008       }
31009 
operator =VULKAN_HPP_NAMESPACE::layout::DisplayProperties2KHR31010       DisplayProperties2KHR& operator=( VkDisplayProperties2KHR const & rhs )
31011       {
31012         *reinterpret_cast<VkDisplayProperties2KHR*>(this) = rhs;
31013         return *this;
31014       }
31015 
31016     public:
31017       vk::StructureType sType = StructureType::eDisplayProperties2KHR;
31018       void* pNext = nullptr;
31019       vk::DisplayPropertiesKHR displayProperties;
31020     };
31021     static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "layout struct and wrapper have different size!" );
31022   }
31023 
31024   struct DisplayProperties2KHR : public layout::DisplayProperties2KHR
31025   {
operator VkDisplayProperties2KHR const&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR31026     operator VkDisplayProperties2KHR const&() const
31027     {
31028       return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
31029     }
31030 
operator VkDisplayProperties2KHR&VULKAN_HPP_NAMESPACE::DisplayProperties2KHR31031     operator VkDisplayProperties2KHR &()
31032     {
31033       return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
31034     }
31035 
operator ==VULKAN_HPP_NAMESPACE::DisplayProperties2KHR31036     bool operator==( DisplayProperties2KHR const& rhs ) const
31037     {
31038       return ( sType == rhs.sType )
31039           && ( pNext == rhs.pNext )
31040           && ( displayProperties == rhs.displayProperties );
31041     }
31042 
operator !=VULKAN_HPP_NAMESPACE::DisplayProperties2KHR31043     bool operator!=( DisplayProperties2KHR const& rhs ) const
31044     {
31045       return !operator==( rhs );
31046     }
31047 
31048   private:
31049     using layout::DisplayProperties2KHR::sType;
31050   };
31051   static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
31052   static_assert( std::is_standard_layout<DisplayProperties2KHR>::value, "struct wrapper is not a standard layout!" );
31053 
31054   namespace layout
31055   {
31056     struct DisplaySurfaceCreateInfoKHR
31057     {
31058     protected:
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplaySurfaceCreateInfoKHR31059       DisplaySurfaceCreateInfoKHR( vk::DisplaySurfaceCreateFlagsKHR flags_ = vk::DisplaySurfaceCreateFlagsKHR(),
31060                                    vk::DisplayModeKHR displayMode_ = vk::DisplayModeKHR(),
31061                                    uint32_t planeIndex_ = 0,
31062                                    uint32_t planeStackIndex_ = 0,
31063                                    vk::SurfaceTransformFlagBitsKHR transform_ = vk::SurfaceTransformFlagBitsKHR::eIdentity,
31064                                    float globalAlpha_ = 0,
31065                                    vk::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = vk::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
31066                                    vk::Extent2D imageExtent_ = vk::Extent2D() )
31067         : flags( flags_ )
31068         , displayMode( displayMode_ )
31069         , planeIndex( planeIndex_ )
31070         , planeStackIndex( planeStackIndex_ )
31071         , transform( transform_ )
31072         , globalAlpha( globalAlpha_ )
31073         , alphaMode( alphaMode_ )
31074         , imageExtent( imageExtent_ )
31075       {}
31076 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::DisplaySurfaceCreateInfoKHR31077       DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs )
31078       {
31079         *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this) = rhs;
31080       }
31081 
operator =VULKAN_HPP_NAMESPACE::layout::DisplaySurfaceCreateInfoKHR31082       DisplaySurfaceCreateInfoKHR& operator=( VkDisplaySurfaceCreateInfoKHR const & rhs )
31083       {
31084         *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this) = rhs;
31085         return *this;
31086       }
31087 
31088     public:
31089       vk::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
31090       const void* pNext = nullptr;
31091       vk::DisplaySurfaceCreateFlagsKHR flags;
31092       vk::DisplayModeKHR displayMode;
31093       uint32_t planeIndex;
31094       uint32_t planeStackIndex;
31095       vk::SurfaceTransformFlagBitsKHR transform;
31096       float globalAlpha;
31097       vk::DisplayPlaneAlphaFlagBitsKHR alphaMode;
31098       vk::Extent2D imageExtent;
31099     };
31100     static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
31101   }
31102 
31103   struct DisplaySurfaceCreateInfoKHR : public layout::DisplaySurfaceCreateInfoKHR
31104   {
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31105     DisplaySurfaceCreateInfoKHR( vk::DisplaySurfaceCreateFlagsKHR flags_ = vk::DisplaySurfaceCreateFlagsKHR(),
31106                                  vk::DisplayModeKHR displayMode_ = vk::DisplayModeKHR(),
31107                                  uint32_t planeIndex_ = 0,
31108                                  uint32_t planeStackIndex_ = 0,
31109                                  vk::SurfaceTransformFlagBitsKHR transform_ = vk::SurfaceTransformFlagBitsKHR::eIdentity,
31110                                  float globalAlpha_ = 0,
31111                                  vk::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = vk::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
31112                                  vk::Extent2D imageExtent_ = vk::Extent2D() )
31113       : layout::DisplaySurfaceCreateInfoKHR( flags_, displayMode_, planeIndex_, planeStackIndex_, transform_, globalAlpha_, alphaMode_, imageExtent_ )
31114     {}
31115 
DisplaySurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31116     DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs )
31117       : layout::DisplaySurfaceCreateInfoKHR( rhs )
31118     {}
31119 
operator =VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31120     DisplaySurfaceCreateInfoKHR& operator=( VkDisplaySurfaceCreateInfoKHR const & rhs )
31121     {
31122       *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this) = rhs;
31123       return *this;
31124     }
31125 
setPNextVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31126     DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ )
31127     {
31128       pNext = pNext_;
31129       return *this;
31130     }
31131 
setFlagsVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31132     DisplaySurfaceCreateInfoKHR & setFlags( vk::DisplaySurfaceCreateFlagsKHR flags_ )
31133     {
31134       flags = flags_;
31135       return *this;
31136     }
31137 
setDisplayModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31138     DisplaySurfaceCreateInfoKHR & setDisplayMode( vk::DisplayModeKHR displayMode_ )
31139     {
31140       displayMode = displayMode_;
31141       return *this;
31142     }
31143 
setPlaneIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31144     DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ )
31145     {
31146       planeIndex = planeIndex_;
31147       return *this;
31148     }
31149 
setPlaneStackIndexVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31150     DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ )
31151     {
31152       planeStackIndex = planeStackIndex_;
31153       return *this;
31154     }
31155 
setTransformVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31156     DisplaySurfaceCreateInfoKHR & setTransform( vk::SurfaceTransformFlagBitsKHR transform_ )
31157     {
31158       transform = transform_;
31159       return *this;
31160     }
31161 
setGlobalAlphaVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31162     DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ )
31163     {
31164       globalAlpha = globalAlpha_;
31165       return *this;
31166     }
31167 
setAlphaModeVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31168     DisplaySurfaceCreateInfoKHR & setAlphaMode( vk::DisplayPlaneAlphaFlagBitsKHR alphaMode_ )
31169     {
31170       alphaMode = alphaMode_;
31171       return *this;
31172     }
31173 
setImageExtentVULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31174     DisplaySurfaceCreateInfoKHR & setImageExtent( vk::Extent2D imageExtent_ )
31175     {
31176       imageExtent = imageExtent_;
31177       return *this;
31178     }
31179 
operator VkDisplaySurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31180     operator VkDisplaySurfaceCreateInfoKHR const&() const
31181     {
31182       return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
31183     }
31184 
operator VkDisplaySurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31185     operator VkDisplaySurfaceCreateInfoKHR &()
31186     {
31187       return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
31188     }
31189 
operator ==VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31190     bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const
31191     {
31192       return ( sType == rhs.sType )
31193           && ( pNext == rhs.pNext )
31194           && ( flags == rhs.flags )
31195           && ( displayMode == rhs.displayMode )
31196           && ( planeIndex == rhs.planeIndex )
31197           && ( planeStackIndex == rhs.planeStackIndex )
31198           && ( transform == rhs.transform )
31199           && ( globalAlpha == rhs.globalAlpha )
31200           && ( alphaMode == rhs.alphaMode )
31201           && ( imageExtent == rhs.imageExtent );
31202     }
31203 
operator !=VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR31204     bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const
31205     {
31206       return !operator==( rhs );
31207     }
31208 
31209   private:
31210     using layout::DisplaySurfaceCreateInfoKHR::sType;
31211   };
31212   static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
31213   static_assert( std::is_standard_layout<DisplaySurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
31214 
31215   struct DrawIndexedIndirectCommand
31216   {
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31217     DrawIndexedIndirectCommand( uint32_t indexCount_ = 0,
31218                                 uint32_t instanceCount_ = 0,
31219                                 uint32_t firstIndex_ = 0,
31220                                 int32_t vertexOffset_ = 0,
31221                                 uint32_t firstInstance_ = 0 )
31222         : indexCount( indexCount_ )
31223         , instanceCount( instanceCount_ )
31224         , firstIndex( firstIndex_ )
31225         , vertexOffset( vertexOffset_ )
31226         , firstInstance( firstInstance_ )
31227     {}
31228 
DrawIndexedIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31229     DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs )
31230     {
31231       *reinterpret_cast<VkDrawIndexedIndirectCommand*>(this) = rhs;
31232     }
31233 
operator =VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31234     DrawIndexedIndirectCommand& operator=( VkDrawIndexedIndirectCommand const & rhs )
31235     {
31236       *reinterpret_cast<VkDrawIndexedIndirectCommand*>(this) = rhs;
31237       return *this;
31238     }
31239 
setIndexCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31240     DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ )
31241     {
31242       indexCount = indexCount_;
31243       return *this;
31244     }
31245 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31246     DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ )
31247     {
31248       instanceCount = instanceCount_;
31249       return *this;
31250     }
31251 
setFirstIndexVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31252     DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ )
31253     {
31254       firstIndex = firstIndex_;
31255       return *this;
31256     }
31257 
setVertexOffsetVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31258     DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ )
31259     {
31260       vertexOffset = vertexOffset_;
31261       return *this;
31262     }
31263 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31264     DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ )
31265     {
31266       firstInstance = firstInstance_;
31267       return *this;
31268     }
31269 
operator VkDrawIndexedIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31270     operator VkDrawIndexedIndirectCommand const&() const
31271     {
31272       return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
31273     }
31274 
operator VkDrawIndexedIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31275     operator VkDrawIndexedIndirectCommand &()
31276     {
31277       return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
31278     }
31279 
operator ==VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31280     bool operator==( DrawIndexedIndirectCommand const& rhs ) const
31281     {
31282       return ( indexCount == rhs.indexCount )
31283           && ( instanceCount == rhs.instanceCount )
31284           && ( firstIndex == rhs.firstIndex )
31285           && ( vertexOffset == rhs.vertexOffset )
31286           && ( firstInstance == rhs.firstInstance );
31287     }
31288 
operator !=VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand31289     bool operator!=( DrawIndexedIndirectCommand const& rhs ) const
31290     {
31291       return !operator==( rhs );
31292     }
31293 
31294   public:
31295     uint32_t indexCount;
31296     uint32_t instanceCount;
31297     uint32_t firstIndex;
31298     int32_t vertexOffset;
31299     uint32_t firstInstance;
31300   };
31301   static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
31302   static_assert( std::is_standard_layout<DrawIndexedIndirectCommand>::value, "struct wrapper is not a standard layout!" );
31303 
31304   struct DrawIndirectCommand
31305   {
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand31306     DrawIndirectCommand( uint32_t vertexCount_ = 0,
31307                          uint32_t instanceCount_ = 0,
31308                          uint32_t firstVertex_ = 0,
31309                          uint32_t firstInstance_ = 0 )
31310         : vertexCount( vertexCount_ )
31311         , instanceCount( instanceCount_ )
31312         , firstVertex( firstVertex_ )
31313         , firstInstance( firstInstance_ )
31314     {}
31315 
DrawIndirectCommandVULKAN_HPP_NAMESPACE::DrawIndirectCommand31316     DrawIndirectCommand( VkDrawIndirectCommand const & rhs )
31317     {
31318       *reinterpret_cast<VkDrawIndirectCommand*>(this) = rhs;
31319     }
31320 
operator =VULKAN_HPP_NAMESPACE::DrawIndirectCommand31321     DrawIndirectCommand& operator=( VkDrawIndirectCommand const & rhs )
31322     {
31323       *reinterpret_cast<VkDrawIndirectCommand*>(this) = rhs;
31324       return *this;
31325     }
31326 
setVertexCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand31327     DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ )
31328     {
31329       vertexCount = vertexCount_;
31330       return *this;
31331     }
31332 
setInstanceCountVULKAN_HPP_NAMESPACE::DrawIndirectCommand31333     DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ )
31334     {
31335       instanceCount = instanceCount_;
31336       return *this;
31337     }
31338 
setFirstVertexVULKAN_HPP_NAMESPACE::DrawIndirectCommand31339     DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ )
31340     {
31341       firstVertex = firstVertex_;
31342       return *this;
31343     }
31344 
setFirstInstanceVULKAN_HPP_NAMESPACE::DrawIndirectCommand31345     DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ )
31346     {
31347       firstInstance = firstInstance_;
31348       return *this;
31349     }
31350 
operator VkDrawIndirectCommand const&VULKAN_HPP_NAMESPACE::DrawIndirectCommand31351     operator VkDrawIndirectCommand const&() const
31352     {
31353       return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
31354     }
31355 
operator VkDrawIndirectCommand&VULKAN_HPP_NAMESPACE::DrawIndirectCommand31356     operator VkDrawIndirectCommand &()
31357     {
31358       return *reinterpret_cast<VkDrawIndirectCommand*>( this );
31359     }
31360 
operator ==VULKAN_HPP_NAMESPACE::DrawIndirectCommand31361     bool operator==( DrawIndirectCommand const& rhs ) const
31362     {
31363       return ( vertexCount == rhs.vertexCount )
31364           && ( instanceCount == rhs.instanceCount )
31365           && ( firstVertex == rhs.firstVertex )
31366           && ( firstInstance == rhs.firstInstance );
31367     }
31368 
operator !=VULKAN_HPP_NAMESPACE::DrawIndirectCommand31369     bool operator!=( DrawIndirectCommand const& rhs ) const
31370     {
31371       return !operator==( rhs );
31372     }
31373 
31374   public:
31375     uint32_t vertexCount;
31376     uint32_t instanceCount;
31377     uint32_t firstVertex;
31378     uint32_t firstInstance;
31379   };
31380   static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
31381   static_assert( std::is_standard_layout<DrawIndirectCommand>::value, "struct wrapper is not a standard layout!" );
31382 
31383   struct DrawMeshTasksIndirectCommandNV
31384   {
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31385     DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = 0,
31386                                     uint32_t firstTask_ = 0 )
31387         : taskCount( taskCount_ )
31388         , firstTask( firstTask_ )
31389     {}
31390 
DrawMeshTasksIndirectCommandNVVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31391     DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs )
31392     {
31393       *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>(this) = rhs;
31394     }
31395 
operator =VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31396     DrawMeshTasksIndirectCommandNV& operator=( VkDrawMeshTasksIndirectCommandNV const & rhs )
31397     {
31398       *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>(this) = rhs;
31399       return *this;
31400     }
31401 
setTaskCountVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31402     DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ )
31403     {
31404       taskCount = taskCount_;
31405       return *this;
31406     }
31407 
setFirstTaskVULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31408     DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ )
31409     {
31410       firstTask = firstTask_;
31411       return *this;
31412     }
31413 
operator VkDrawMeshTasksIndirectCommandNV const&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31414     operator VkDrawMeshTasksIndirectCommandNV const&() const
31415     {
31416       return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
31417     }
31418 
operator VkDrawMeshTasksIndirectCommandNV&VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31419     operator VkDrawMeshTasksIndirectCommandNV &()
31420     {
31421       return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
31422     }
31423 
operator ==VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31424     bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const
31425     {
31426       return ( taskCount == rhs.taskCount )
31427           && ( firstTask == rhs.firstTask );
31428     }
31429 
operator !=VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV31430     bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const
31431     {
31432       return !operator==( rhs );
31433     }
31434 
31435   public:
31436     uint32_t taskCount;
31437     uint32_t firstTask;
31438   };
31439   static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
31440   static_assert( std::is_standard_layout<DrawMeshTasksIndirectCommandNV>::value, "struct wrapper is not a standard layout!" );
31441 
31442   struct DrmFormatModifierPropertiesEXT
31443   {
operator VkDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT31444     operator VkDrmFormatModifierPropertiesEXT const&() const
31445     {
31446       return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
31447     }
31448 
operator VkDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT31449     operator VkDrmFormatModifierPropertiesEXT &()
31450     {
31451       return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
31452     }
31453 
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT31454     bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const
31455     {
31456       return ( drmFormatModifier == rhs.drmFormatModifier )
31457           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
31458           && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
31459     }
31460 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT31461     bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const
31462     {
31463       return !operator==( rhs );
31464     }
31465 
31466   public:
31467     uint64_t drmFormatModifier;
31468     uint32_t drmFormatModifierPlaneCount;
31469     vk::FormatFeatureFlags drmFormatModifierTilingFeatures;
31470   };
31471   static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
31472   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
31473 
31474   namespace layout
31475   {
31476     struct DrmFormatModifierPropertiesListEXT
31477     {
31478     protected:
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::layout::DrmFormatModifierPropertiesListEXT31479       DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = 0,
31480                                           vk::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = nullptr )
31481         : drmFormatModifierCount( drmFormatModifierCount_ )
31482         , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
31483       {}
31484 
DrmFormatModifierPropertiesListEXTVULKAN_HPP_NAMESPACE::layout::DrmFormatModifierPropertiesListEXT31485       DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs )
31486       {
31487         *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(this) = rhs;
31488       }
31489 
operator =VULKAN_HPP_NAMESPACE::layout::DrmFormatModifierPropertiesListEXT31490       DrmFormatModifierPropertiesListEXT& operator=( VkDrmFormatModifierPropertiesListEXT const & rhs )
31491       {
31492         *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(this) = rhs;
31493         return *this;
31494       }
31495 
31496     public:
31497       vk::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
31498       void* pNext = nullptr;
31499       uint32_t drmFormatModifierCount;
31500       vk::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
31501     };
31502     static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "layout struct and wrapper have different size!" );
31503   }
31504 
31505   struct DrmFormatModifierPropertiesListEXT : public layout::DrmFormatModifierPropertiesListEXT
31506   {
operator VkDrmFormatModifierPropertiesListEXT const&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT31507     operator VkDrmFormatModifierPropertiesListEXT const&() const
31508     {
31509       return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
31510     }
31511 
operator VkDrmFormatModifierPropertiesListEXT&VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT31512     operator VkDrmFormatModifierPropertiesListEXT &()
31513     {
31514       return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
31515     }
31516 
operator ==VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT31517     bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const
31518     {
31519       return ( sType == rhs.sType )
31520           && ( pNext == rhs.pNext )
31521           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
31522           && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
31523     }
31524 
operator !=VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT31525     bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const
31526     {
31527       return !operator==( rhs );
31528     }
31529 
31530   private:
31531     using layout::DrmFormatModifierPropertiesListEXT::sType;
31532   };
31533   static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
31534   static_assert( std::is_standard_layout<DrmFormatModifierPropertiesListEXT>::value, "struct wrapper is not a standard layout!" );
31535 
31536   namespace layout
31537   {
31538     struct EventCreateInfo
31539     {
31540     protected:
EventCreateInfoVULKAN_HPP_NAMESPACE::layout::EventCreateInfo31541       EventCreateInfo( vk::EventCreateFlags flags_ = vk::EventCreateFlags() )
31542         : flags( flags_ )
31543       {}
31544 
EventCreateInfoVULKAN_HPP_NAMESPACE::layout::EventCreateInfo31545       EventCreateInfo( VkEventCreateInfo const & rhs )
31546       {
31547         *reinterpret_cast<VkEventCreateInfo*>(this) = rhs;
31548       }
31549 
operator =VULKAN_HPP_NAMESPACE::layout::EventCreateInfo31550       EventCreateInfo& operator=( VkEventCreateInfo const & rhs )
31551       {
31552         *reinterpret_cast<VkEventCreateInfo*>(this) = rhs;
31553         return *this;
31554       }
31555 
31556     public:
31557       vk::StructureType sType = StructureType::eEventCreateInfo;
31558       const void* pNext = nullptr;
31559       vk::EventCreateFlags flags;
31560     };
31561     static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "layout struct and wrapper have different size!" );
31562   }
31563 
31564   struct EventCreateInfo : public layout::EventCreateInfo
31565   {
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo31566     EventCreateInfo( vk::EventCreateFlags flags_ = vk::EventCreateFlags() )
31567       : layout::EventCreateInfo( flags_ )
31568     {}
31569 
EventCreateInfoVULKAN_HPP_NAMESPACE::EventCreateInfo31570     EventCreateInfo( VkEventCreateInfo const & rhs )
31571       : layout::EventCreateInfo( rhs )
31572     {}
31573 
operator =VULKAN_HPP_NAMESPACE::EventCreateInfo31574     EventCreateInfo& operator=( VkEventCreateInfo const & rhs )
31575     {
31576       *reinterpret_cast<VkEventCreateInfo*>(this) = rhs;
31577       return *this;
31578     }
31579 
setPNextVULKAN_HPP_NAMESPACE::EventCreateInfo31580     EventCreateInfo & setPNext( const void* pNext_ )
31581     {
31582       pNext = pNext_;
31583       return *this;
31584     }
31585 
setFlagsVULKAN_HPP_NAMESPACE::EventCreateInfo31586     EventCreateInfo & setFlags( vk::EventCreateFlags flags_ )
31587     {
31588       flags = flags_;
31589       return *this;
31590     }
31591 
operator VkEventCreateInfo const&VULKAN_HPP_NAMESPACE::EventCreateInfo31592     operator VkEventCreateInfo const&() const
31593     {
31594       return *reinterpret_cast<const VkEventCreateInfo*>( this );
31595     }
31596 
operator VkEventCreateInfo&VULKAN_HPP_NAMESPACE::EventCreateInfo31597     operator VkEventCreateInfo &()
31598     {
31599       return *reinterpret_cast<VkEventCreateInfo*>( this );
31600     }
31601 
operator ==VULKAN_HPP_NAMESPACE::EventCreateInfo31602     bool operator==( EventCreateInfo const& rhs ) const
31603     {
31604       return ( sType == rhs.sType )
31605           && ( pNext == rhs.pNext )
31606           && ( flags == rhs.flags );
31607     }
31608 
operator !=VULKAN_HPP_NAMESPACE::EventCreateInfo31609     bool operator!=( EventCreateInfo const& rhs ) const
31610     {
31611       return !operator==( rhs );
31612     }
31613 
31614   private:
31615     using layout::EventCreateInfo::sType;
31616   };
31617   static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
31618   static_assert( std::is_standard_layout<EventCreateInfo>::value, "struct wrapper is not a standard layout!" );
31619 
31620   namespace layout
31621   {
31622     struct ExportFenceCreateInfo
31623     {
31624     protected:
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::layout::ExportFenceCreateInfo31625       ExportFenceCreateInfo( vk::ExternalFenceHandleTypeFlags handleTypes_ = vk::ExternalFenceHandleTypeFlags() )
31626         : handleTypes( handleTypes_ )
31627       {}
31628 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::layout::ExportFenceCreateInfo31629       ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs )
31630       {
31631         *reinterpret_cast<VkExportFenceCreateInfo*>(this) = rhs;
31632       }
31633 
operator =VULKAN_HPP_NAMESPACE::layout::ExportFenceCreateInfo31634       ExportFenceCreateInfo& operator=( VkExportFenceCreateInfo const & rhs )
31635       {
31636         *reinterpret_cast<VkExportFenceCreateInfo*>(this) = rhs;
31637         return *this;
31638       }
31639 
31640     public:
31641       vk::StructureType sType = StructureType::eExportFenceCreateInfo;
31642       const void* pNext = nullptr;
31643       vk::ExternalFenceHandleTypeFlags handleTypes;
31644     };
31645     static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "layout struct and wrapper have different size!" );
31646   }
31647 
31648   struct ExportFenceCreateInfo : public layout::ExportFenceCreateInfo
31649   {
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31650     ExportFenceCreateInfo( vk::ExternalFenceHandleTypeFlags handleTypes_ = vk::ExternalFenceHandleTypeFlags() )
31651       : layout::ExportFenceCreateInfo( handleTypes_ )
31652     {}
31653 
ExportFenceCreateInfoVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31654     ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs )
31655       : layout::ExportFenceCreateInfo( rhs )
31656     {}
31657 
operator =VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31658     ExportFenceCreateInfo& operator=( VkExportFenceCreateInfo const & rhs )
31659     {
31660       *reinterpret_cast<VkExportFenceCreateInfo*>(this) = rhs;
31661       return *this;
31662     }
31663 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31664     ExportFenceCreateInfo & setPNext( const void* pNext_ )
31665     {
31666       pNext = pNext_;
31667       return *this;
31668     }
31669 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31670     ExportFenceCreateInfo & setHandleTypes( vk::ExternalFenceHandleTypeFlags handleTypes_ )
31671     {
31672       handleTypes = handleTypes_;
31673       return *this;
31674     }
31675 
operator VkExportFenceCreateInfo const&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31676     operator VkExportFenceCreateInfo const&() const
31677     {
31678       return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
31679     }
31680 
operator VkExportFenceCreateInfo&VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31681     operator VkExportFenceCreateInfo &()
31682     {
31683       return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
31684     }
31685 
operator ==VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31686     bool operator==( ExportFenceCreateInfo const& rhs ) const
31687     {
31688       return ( sType == rhs.sType )
31689           && ( pNext == rhs.pNext )
31690           && ( handleTypes == rhs.handleTypes );
31691     }
31692 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo31693     bool operator!=( ExportFenceCreateInfo const& rhs ) const
31694     {
31695       return !operator==( rhs );
31696     }
31697 
31698   private:
31699     using layout::ExportFenceCreateInfo::sType;
31700   };
31701   static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
31702   static_assert( std::is_standard_layout<ExportFenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
31703 
31704 #ifdef VK_USE_PLATFORM_WIN32_KHR
31705 
31706   namespace layout
31707   {
31708     struct ExportFenceWin32HandleInfoKHR
31709     {
31710     protected:
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportFenceWin32HandleInfoKHR31711       ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
31712                                      DWORD dwAccess_ = 0,
31713                                      LPCWSTR name_ = nullptr )
31714         : pAttributes( pAttributes_ )
31715         , dwAccess( dwAccess_ )
31716         , name( name_ )
31717       {}
31718 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportFenceWin32HandleInfoKHR31719       ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs )
31720       {
31721         *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this) = rhs;
31722       }
31723 
operator =VULKAN_HPP_NAMESPACE::layout::ExportFenceWin32HandleInfoKHR31724       ExportFenceWin32HandleInfoKHR& operator=( VkExportFenceWin32HandleInfoKHR const & rhs )
31725       {
31726         *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this) = rhs;
31727         return *this;
31728       }
31729 
31730     public:
31731       vk::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
31732       const void* pNext = nullptr;
31733       const SECURITY_ATTRIBUTES* pAttributes;
31734       DWORD dwAccess;
31735       LPCWSTR name;
31736     };
31737     static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
31738   }
31739 
31740   struct ExportFenceWin32HandleInfoKHR : public layout::ExportFenceWin32HandleInfoKHR
31741   {
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31742     ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
31743                                    DWORD dwAccess_ = 0,
31744                                    LPCWSTR name_ = nullptr )
31745       : layout::ExportFenceWin32HandleInfoKHR( pAttributes_, dwAccess_, name_ )
31746     {}
31747 
ExportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31748     ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs )
31749       : layout::ExportFenceWin32HandleInfoKHR( rhs )
31750     {}
31751 
operator =VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31752     ExportFenceWin32HandleInfoKHR& operator=( VkExportFenceWin32HandleInfoKHR const & rhs )
31753     {
31754       *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this) = rhs;
31755       return *this;
31756     }
31757 
setPNextVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31758     ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ )
31759     {
31760       pNext = pNext_;
31761       return *this;
31762     }
31763 
setPAttributesVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31764     ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
31765     {
31766       pAttributes = pAttributes_;
31767       return *this;
31768     }
31769 
setDwAccessVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31770     ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
31771     {
31772       dwAccess = dwAccess_;
31773       return *this;
31774     }
31775 
setNameVULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31776     ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ )
31777     {
31778       name = name_;
31779       return *this;
31780     }
31781 
operator VkExportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31782     operator VkExportFenceWin32HandleInfoKHR const&() const
31783     {
31784       return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
31785     }
31786 
operator VkExportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31787     operator VkExportFenceWin32HandleInfoKHR &()
31788     {
31789       return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
31790     }
31791 
operator ==VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31792     bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const
31793     {
31794       return ( sType == rhs.sType )
31795           && ( pNext == rhs.pNext )
31796           && ( pAttributes == rhs.pAttributes )
31797           && ( dwAccess == rhs.dwAccess )
31798           && ( name == rhs.name );
31799     }
31800 
operator !=VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR31801     bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const
31802     {
31803       return !operator==( rhs );
31804     }
31805 
31806   private:
31807     using layout::ExportFenceWin32HandleInfoKHR::sType;
31808   };
31809   static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
31810   static_assert( std::is_standard_layout<ExportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
31811 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
31812 
31813   namespace layout
31814   {
31815     struct ExportMemoryAllocateInfo
31816     {
31817     protected:
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfo31818       ExportMemoryAllocateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
31819         : handleTypes( handleTypes_ )
31820       {}
31821 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfo31822       ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs )
31823       {
31824         *reinterpret_cast<VkExportMemoryAllocateInfo*>(this) = rhs;
31825       }
31826 
operator =VULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfo31827       ExportMemoryAllocateInfo& operator=( VkExportMemoryAllocateInfo const & rhs )
31828       {
31829         *reinterpret_cast<VkExportMemoryAllocateInfo*>(this) = rhs;
31830         return *this;
31831       }
31832 
31833     public:
31834       vk::StructureType sType = StructureType::eExportMemoryAllocateInfo;
31835       const void* pNext = nullptr;
31836       vk::ExternalMemoryHandleTypeFlags handleTypes;
31837     };
31838     static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "layout struct and wrapper have different size!" );
31839   }
31840 
31841   struct ExportMemoryAllocateInfo : public layout::ExportMemoryAllocateInfo
31842   {
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31843     ExportMemoryAllocateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
31844       : layout::ExportMemoryAllocateInfo( handleTypes_ )
31845     {}
31846 
ExportMemoryAllocateInfoVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31847     ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs )
31848       : layout::ExportMemoryAllocateInfo( rhs )
31849     {}
31850 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31851     ExportMemoryAllocateInfo& operator=( VkExportMemoryAllocateInfo const & rhs )
31852     {
31853       *reinterpret_cast<VkExportMemoryAllocateInfo*>(this) = rhs;
31854       return *this;
31855     }
31856 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31857     ExportMemoryAllocateInfo & setPNext( const void* pNext_ )
31858     {
31859       pNext = pNext_;
31860       return *this;
31861     }
31862 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31863     ExportMemoryAllocateInfo & setHandleTypes( vk::ExternalMemoryHandleTypeFlags handleTypes_ )
31864     {
31865       handleTypes = handleTypes_;
31866       return *this;
31867     }
31868 
operator VkExportMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31869     operator VkExportMemoryAllocateInfo const&() const
31870     {
31871       return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
31872     }
31873 
operator VkExportMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31874     operator VkExportMemoryAllocateInfo &()
31875     {
31876       return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
31877     }
31878 
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31879     bool operator==( ExportMemoryAllocateInfo const& rhs ) const
31880     {
31881       return ( sType == rhs.sType )
31882           && ( pNext == rhs.pNext )
31883           && ( handleTypes == rhs.handleTypes );
31884     }
31885 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo31886     bool operator!=( ExportMemoryAllocateInfo const& rhs ) const
31887     {
31888       return !operator==( rhs );
31889     }
31890 
31891   private:
31892     using layout::ExportMemoryAllocateInfo::sType;
31893   };
31894   static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
31895   static_assert( std::is_standard_layout<ExportMemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
31896 
31897   namespace layout
31898   {
31899     struct ExportMemoryAllocateInfoNV
31900     {
31901     protected:
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfoNV31902       ExportMemoryAllocateInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ = vk::ExternalMemoryHandleTypeFlagsNV() )
31903         : handleTypes( handleTypes_ )
31904       {}
31905 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfoNV31906       ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs )
31907       {
31908         *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this) = rhs;
31909       }
31910 
operator =VULKAN_HPP_NAMESPACE::layout::ExportMemoryAllocateInfoNV31911       ExportMemoryAllocateInfoNV& operator=( VkExportMemoryAllocateInfoNV const & rhs )
31912       {
31913         *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this) = rhs;
31914         return *this;
31915       }
31916 
31917     public:
31918       vk::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
31919       const void* pNext = nullptr;
31920       vk::ExternalMemoryHandleTypeFlagsNV handleTypes;
31921     };
31922     static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "layout struct and wrapper have different size!" );
31923   }
31924 
31925   struct ExportMemoryAllocateInfoNV : public layout::ExportMemoryAllocateInfoNV
31926   {
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31927     ExportMemoryAllocateInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ = vk::ExternalMemoryHandleTypeFlagsNV() )
31928       : layout::ExportMemoryAllocateInfoNV( handleTypes_ )
31929     {}
31930 
ExportMemoryAllocateInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31931     ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs )
31932       : layout::ExportMemoryAllocateInfoNV( rhs )
31933     {}
31934 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31935     ExportMemoryAllocateInfoNV& operator=( VkExportMemoryAllocateInfoNV const & rhs )
31936     {
31937       *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this) = rhs;
31938       return *this;
31939     }
31940 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31941     ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ )
31942     {
31943       pNext = pNext_;
31944       return *this;
31945     }
31946 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31947     ExportMemoryAllocateInfoNV & setHandleTypes( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ )
31948     {
31949       handleTypes = handleTypes_;
31950       return *this;
31951     }
31952 
operator VkExportMemoryAllocateInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31953     operator VkExportMemoryAllocateInfoNV const&() const
31954     {
31955       return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
31956     }
31957 
operator VkExportMemoryAllocateInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31958     operator VkExportMemoryAllocateInfoNV &()
31959     {
31960       return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
31961     }
31962 
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31963     bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const
31964     {
31965       return ( sType == rhs.sType )
31966           && ( pNext == rhs.pNext )
31967           && ( handleTypes == rhs.handleTypes );
31968     }
31969 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV31970     bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const
31971     {
31972       return !operator==( rhs );
31973     }
31974 
31975   private:
31976     using layout::ExportMemoryAllocateInfoNV::sType;
31977   };
31978   static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
31979   static_assert( std::is_standard_layout<ExportMemoryAllocateInfoNV>::value, "struct wrapper is not a standard layout!" );
31980 
31981 #ifdef VK_USE_PLATFORM_WIN32_KHR
31982 
31983   namespace layout
31984   {
31985     struct ExportMemoryWin32HandleInfoKHR
31986     {
31987     protected:
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoKHR31988       ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
31989                                       DWORD dwAccess_ = 0,
31990                                       LPCWSTR name_ = nullptr )
31991         : pAttributes( pAttributes_ )
31992         , dwAccess( dwAccess_ )
31993         , name( name_ )
31994       {}
31995 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoKHR31996       ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs )
31997       {
31998         *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this) = rhs;
31999       }
32000 
operator =VULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoKHR32001       ExportMemoryWin32HandleInfoKHR& operator=( VkExportMemoryWin32HandleInfoKHR const & rhs )
32002       {
32003         *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this) = rhs;
32004         return *this;
32005       }
32006 
32007     public:
32008       vk::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
32009       const void* pNext = nullptr;
32010       const SECURITY_ATTRIBUTES* pAttributes;
32011       DWORD dwAccess;
32012       LPCWSTR name;
32013     };
32014     static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
32015   }
32016 
32017   struct ExportMemoryWin32HandleInfoKHR : public layout::ExportMemoryWin32HandleInfoKHR
32018   {
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32019     ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
32020                                     DWORD dwAccess_ = 0,
32021                                     LPCWSTR name_ = nullptr )
32022       : layout::ExportMemoryWin32HandleInfoKHR( pAttributes_, dwAccess_, name_ )
32023     {}
32024 
ExportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32025     ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs )
32026       : layout::ExportMemoryWin32HandleInfoKHR( rhs )
32027     {}
32028 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32029     ExportMemoryWin32HandleInfoKHR& operator=( VkExportMemoryWin32HandleInfoKHR const & rhs )
32030     {
32031       *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this) = rhs;
32032       return *this;
32033     }
32034 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32035     ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ )
32036     {
32037       pNext = pNext_;
32038       return *this;
32039     }
32040 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32041     ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
32042     {
32043       pAttributes = pAttributes_;
32044       return *this;
32045     }
32046 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32047     ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
32048     {
32049       dwAccess = dwAccess_;
32050       return *this;
32051     }
32052 
setNameVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32053     ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ )
32054     {
32055       name = name_;
32056       return *this;
32057     }
32058 
operator VkExportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32059     operator VkExportMemoryWin32HandleInfoKHR const&() const
32060     {
32061       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
32062     }
32063 
operator VkExportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32064     operator VkExportMemoryWin32HandleInfoKHR &()
32065     {
32066       return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
32067     }
32068 
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32069     bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const
32070     {
32071       return ( sType == rhs.sType )
32072           && ( pNext == rhs.pNext )
32073           && ( pAttributes == rhs.pAttributes )
32074           && ( dwAccess == rhs.dwAccess )
32075           && ( name == rhs.name );
32076     }
32077 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR32078     bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const
32079     {
32080       return !operator==( rhs );
32081     }
32082 
32083   private:
32084     using layout::ExportMemoryWin32HandleInfoKHR::sType;
32085   };
32086   static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
32087   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
32088 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
32089 
32090 #ifdef VK_USE_PLATFORM_WIN32_KHR
32091 
32092   namespace layout
32093   {
32094     struct ExportMemoryWin32HandleInfoNV
32095     {
32096     protected:
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoNV32097       ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
32098                                      DWORD dwAccess_ = 0 )
32099         : pAttributes( pAttributes_ )
32100         , dwAccess( dwAccess_ )
32101       {}
32102 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoNV32103       ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs )
32104       {
32105         *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this) = rhs;
32106       }
32107 
operator =VULKAN_HPP_NAMESPACE::layout::ExportMemoryWin32HandleInfoNV32108       ExportMemoryWin32HandleInfoNV& operator=( VkExportMemoryWin32HandleInfoNV const & rhs )
32109       {
32110         *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this) = rhs;
32111         return *this;
32112       }
32113 
32114     public:
32115       vk::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
32116       const void* pNext = nullptr;
32117       const SECURITY_ATTRIBUTES* pAttributes;
32118       DWORD dwAccess;
32119     };
32120     static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "layout struct and wrapper have different size!" );
32121   }
32122 
32123   struct ExportMemoryWin32HandleInfoNV : public layout::ExportMemoryWin32HandleInfoNV
32124   {
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32125     ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
32126                                    DWORD dwAccess_ = 0 )
32127       : layout::ExportMemoryWin32HandleInfoNV( pAttributes_, dwAccess_ )
32128     {}
32129 
ExportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32130     ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs )
32131       : layout::ExportMemoryWin32HandleInfoNV( rhs )
32132     {}
32133 
operator =VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32134     ExportMemoryWin32HandleInfoNV& operator=( VkExportMemoryWin32HandleInfoNV const & rhs )
32135     {
32136       *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this) = rhs;
32137       return *this;
32138     }
32139 
setPNextVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32140     ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ )
32141     {
32142       pNext = pNext_;
32143       return *this;
32144     }
32145 
setPAttributesVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32146     ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
32147     {
32148       pAttributes = pAttributes_;
32149       return *this;
32150     }
32151 
setDwAccessVULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32152     ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ )
32153     {
32154       dwAccess = dwAccess_;
32155       return *this;
32156     }
32157 
operator VkExportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32158     operator VkExportMemoryWin32HandleInfoNV const&() const
32159     {
32160       return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
32161     }
32162 
operator VkExportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32163     operator VkExportMemoryWin32HandleInfoNV &()
32164     {
32165       return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
32166     }
32167 
operator ==VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32168     bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const
32169     {
32170       return ( sType == rhs.sType )
32171           && ( pNext == rhs.pNext )
32172           && ( pAttributes == rhs.pAttributes )
32173           && ( dwAccess == rhs.dwAccess );
32174     }
32175 
operator !=VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV32176     bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const
32177     {
32178       return !operator==( rhs );
32179     }
32180 
32181   private:
32182     using layout::ExportMemoryWin32HandleInfoNV::sType;
32183   };
32184   static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
32185   static_assert( std::is_standard_layout<ExportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
32186 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
32187 
32188   namespace layout
32189   {
32190     struct ExportSemaphoreCreateInfo
32191     {
32192     protected:
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::layout::ExportSemaphoreCreateInfo32193       ExportSemaphoreCreateInfo( vk::ExternalSemaphoreHandleTypeFlags handleTypes_ = vk::ExternalSemaphoreHandleTypeFlags() )
32194         : handleTypes( handleTypes_ )
32195       {}
32196 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::layout::ExportSemaphoreCreateInfo32197       ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs )
32198       {
32199         *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this) = rhs;
32200       }
32201 
operator =VULKAN_HPP_NAMESPACE::layout::ExportSemaphoreCreateInfo32202       ExportSemaphoreCreateInfo& operator=( VkExportSemaphoreCreateInfo const & rhs )
32203       {
32204         *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this) = rhs;
32205         return *this;
32206       }
32207 
32208     public:
32209       vk::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
32210       const void* pNext = nullptr;
32211       vk::ExternalSemaphoreHandleTypeFlags handleTypes;
32212     };
32213     static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "layout struct and wrapper have different size!" );
32214   }
32215 
32216   struct ExportSemaphoreCreateInfo : public layout::ExportSemaphoreCreateInfo
32217   {
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32218     ExportSemaphoreCreateInfo( vk::ExternalSemaphoreHandleTypeFlags handleTypes_ = vk::ExternalSemaphoreHandleTypeFlags() )
32219       : layout::ExportSemaphoreCreateInfo( handleTypes_ )
32220     {}
32221 
ExportSemaphoreCreateInfoVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32222     ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs )
32223       : layout::ExportSemaphoreCreateInfo( rhs )
32224     {}
32225 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32226     ExportSemaphoreCreateInfo& operator=( VkExportSemaphoreCreateInfo const & rhs )
32227     {
32228       *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this) = rhs;
32229       return *this;
32230     }
32231 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32232     ExportSemaphoreCreateInfo & setPNext( const void* pNext_ )
32233     {
32234       pNext = pNext_;
32235       return *this;
32236     }
32237 
setHandleTypesVULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32238     ExportSemaphoreCreateInfo & setHandleTypes( vk::ExternalSemaphoreHandleTypeFlags handleTypes_ )
32239     {
32240       handleTypes = handleTypes_;
32241       return *this;
32242     }
32243 
operator VkExportSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32244     operator VkExportSemaphoreCreateInfo const&() const
32245     {
32246       return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
32247     }
32248 
operator VkExportSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32249     operator VkExportSemaphoreCreateInfo &()
32250     {
32251       return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
32252     }
32253 
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32254     bool operator==( ExportSemaphoreCreateInfo const& rhs ) const
32255     {
32256       return ( sType == rhs.sType )
32257           && ( pNext == rhs.pNext )
32258           && ( handleTypes == rhs.handleTypes );
32259     }
32260 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo32261     bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const
32262     {
32263       return !operator==( rhs );
32264     }
32265 
32266   private:
32267     using layout::ExportSemaphoreCreateInfo::sType;
32268   };
32269   static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
32270   static_assert( std::is_standard_layout<ExportSemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
32271 
32272 #ifdef VK_USE_PLATFORM_WIN32_KHR
32273 
32274   namespace layout
32275   {
32276     struct ExportSemaphoreWin32HandleInfoKHR
32277     {
32278     protected:
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportSemaphoreWin32HandleInfoKHR32279       ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
32280                                          DWORD dwAccess_ = 0,
32281                                          LPCWSTR name_ = nullptr )
32282         : pAttributes( pAttributes_ )
32283         , dwAccess( dwAccess_ )
32284         , name( name_ )
32285       {}
32286 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ExportSemaphoreWin32HandleInfoKHR32287       ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
32288       {
32289         *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
32290       }
32291 
operator =VULKAN_HPP_NAMESPACE::layout::ExportSemaphoreWin32HandleInfoKHR32292       ExportSemaphoreWin32HandleInfoKHR& operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
32293       {
32294         *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
32295         return *this;
32296       }
32297 
32298     public:
32299       vk::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
32300       const void* pNext = nullptr;
32301       const SECURITY_ATTRIBUTES* pAttributes;
32302       DWORD dwAccess;
32303       LPCWSTR name;
32304     };
32305     static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
32306   }
32307 
32308   struct ExportSemaphoreWin32HandleInfoKHR : public layout::ExportSemaphoreWin32HandleInfoKHR
32309   {
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32310     ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
32311                                        DWORD dwAccess_ = 0,
32312                                        LPCWSTR name_ = nullptr )
32313       : layout::ExportSemaphoreWin32HandleInfoKHR( pAttributes_, dwAccess_, name_ )
32314     {}
32315 
ExportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32316     ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
32317       : layout::ExportSemaphoreWin32HandleInfoKHR( rhs )
32318     {}
32319 
operator =VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32320     ExportSemaphoreWin32HandleInfoKHR& operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
32321     {
32322       *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
32323       return *this;
32324     }
32325 
setPNextVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32326     ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ )
32327     {
32328       pNext = pNext_;
32329       return *this;
32330     }
32331 
setPAttributesVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32332     ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
32333     {
32334       pAttributes = pAttributes_;
32335       return *this;
32336     }
32337 
setDwAccessVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32338     ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
32339     {
32340       dwAccess = dwAccess_;
32341       return *this;
32342     }
32343 
setNameVULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32344     ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ )
32345     {
32346       name = name_;
32347       return *this;
32348     }
32349 
operator VkExportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32350     operator VkExportSemaphoreWin32HandleInfoKHR const&() const
32351     {
32352       return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
32353     }
32354 
operator VkExportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32355     operator VkExportSemaphoreWin32HandleInfoKHR &()
32356     {
32357       return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
32358     }
32359 
operator ==VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32360     bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const
32361     {
32362       return ( sType == rhs.sType )
32363           && ( pNext == rhs.pNext )
32364           && ( pAttributes == rhs.pAttributes )
32365           && ( dwAccess == rhs.dwAccess )
32366           && ( name == rhs.name );
32367     }
32368 
operator !=VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR32369     bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const
32370     {
32371       return !operator==( rhs );
32372     }
32373 
32374   private:
32375     using layout::ExportSemaphoreWin32HandleInfoKHR::sType;
32376   };
32377   static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
32378   static_assert( std::is_standard_layout<ExportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
32379 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
32380 
32381   struct ExtensionProperties
32382   {
operator VkExtensionProperties const&VULKAN_HPP_NAMESPACE::ExtensionProperties32383     operator VkExtensionProperties const&() const
32384     {
32385       return *reinterpret_cast<const VkExtensionProperties*>( this );
32386     }
32387 
operator VkExtensionProperties&VULKAN_HPP_NAMESPACE::ExtensionProperties32388     operator VkExtensionProperties &()
32389     {
32390       return *reinterpret_cast<VkExtensionProperties*>( this );
32391     }
32392 
operator ==VULKAN_HPP_NAMESPACE::ExtensionProperties32393     bool operator==( ExtensionProperties const& rhs ) const
32394     {
32395       return ( memcmp( extensionName, rhs.extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 )
32396           && ( specVersion == rhs.specVersion );
32397     }
32398 
operator !=VULKAN_HPP_NAMESPACE::ExtensionProperties32399     bool operator!=( ExtensionProperties const& rhs ) const
32400     {
32401       return !operator==( rhs );
32402     }
32403 
32404   public:
32405     char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
32406     uint32_t specVersion;
32407   };
32408   static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
32409   static_assert( std::is_standard_layout<ExtensionProperties>::value, "struct wrapper is not a standard layout!" );
32410 
32411   struct ExternalMemoryProperties
32412   {
operator VkExternalMemoryProperties const&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties32413     operator VkExternalMemoryProperties const&() const
32414     {
32415       return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
32416     }
32417 
operator VkExternalMemoryProperties&VULKAN_HPP_NAMESPACE::ExternalMemoryProperties32418     operator VkExternalMemoryProperties &()
32419     {
32420       return *reinterpret_cast<VkExternalMemoryProperties*>( this );
32421     }
32422 
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryProperties32423     bool operator==( ExternalMemoryProperties const& rhs ) const
32424     {
32425       return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
32426           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
32427           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
32428     }
32429 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryProperties32430     bool operator!=( ExternalMemoryProperties const& rhs ) const
32431     {
32432       return !operator==( rhs );
32433     }
32434 
32435   public:
32436     vk::ExternalMemoryFeatureFlags externalMemoryFeatures;
32437     vk::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
32438     vk::ExternalMemoryHandleTypeFlags compatibleHandleTypes;
32439   };
32440   static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
32441   static_assert( std::is_standard_layout<ExternalMemoryProperties>::value, "struct wrapper is not a standard layout!" );
32442 
32443   namespace layout
32444   {
32445     struct ExternalBufferProperties
32446     {
32447     protected:
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::layout::ExternalBufferProperties32448       ExternalBufferProperties( vk::ExternalMemoryProperties externalMemoryProperties_ = vk::ExternalMemoryProperties() )
32449         : externalMemoryProperties( externalMemoryProperties_ )
32450       {}
32451 
ExternalBufferPropertiesVULKAN_HPP_NAMESPACE::layout::ExternalBufferProperties32452       ExternalBufferProperties( VkExternalBufferProperties const & rhs )
32453       {
32454         *reinterpret_cast<VkExternalBufferProperties*>(this) = rhs;
32455       }
32456 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalBufferProperties32457       ExternalBufferProperties& operator=( VkExternalBufferProperties const & rhs )
32458       {
32459         *reinterpret_cast<VkExternalBufferProperties*>(this) = rhs;
32460         return *this;
32461       }
32462 
32463     public:
32464       vk::StructureType sType = StructureType::eExternalBufferProperties;
32465       void* pNext = nullptr;
32466       vk::ExternalMemoryProperties externalMemoryProperties;
32467     };
32468     static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "layout struct and wrapper have different size!" );
32469   }
32470 
32471   struct ExternalBufferProperties : public layout::ExternalBufferProperties
32472   {
operator VkExternalBufferProperties const&VULKAN_HPP_NAMESPACE::ExternalBufferProperties32473     operator VkExternalBufferProperties const&() const
32474     {
32475       return *reinterpret_cast<const VkExternalBufferProperties*>( this );
32476     }
32477 
operator VkExternalBufferProperties&VULKAN_HPP_NAMESPACE::ExternalBufferProperties32478     operator VkExternalBufferProperties &()
32479     {
32480       return *reinterpret_cast<VkExternalBufferProperties*>( this );
32481     }
32482 
operator ==VULKAN_HPP_NAMESPACE::ExternalBufferProperties32483     bool operator==( ExternalBufferProperties const& rhs ) const
32484     {
32485       return ( sType == rhs.sType )
32486           && ( pNext == rhs.pNext )
32487           && ( externalMemoryProperties == rhs.externalMemoryProperties );
32488     }
32489 
operator !=VULKAN_HPP_NAMESPACE::ExternalBufferProperties32490     bool operator!=( ExternalBufferProperties const& rhs ) const
32491     {
32492       return !operator==( rhs );
32493     }
32494 
32495   private:
32496     using layout::ExternalBufferProperties::sType;
32497   };
32498   static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
32499   static_assert( std::is_standard_layout<ExternalBufferProperties>::value, "struct wrapper is not a standard layout!" );
32500 
32501   namespace layout
32502   {
32503     struct ExternalFenceProperties
32504     {
32505     protected:
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::layout::ExternalFenceProperties32506       ExternalFenceProperties( vk::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = vk::ExternalFenceHandleTypeFlags(),
32507                                vk::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = vk::ExternalFenceHandleTypeFlags(),
32508                                vk::ExternalFenceFeatureFlags externalFenceFeatures_ = vk::ExternalFenceFeatureFlags() )
32509         : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
32510         , compatibleHandleTypes( compatibleHandleTypes_ )
32511         , externalFenceFeatures( externalFenceFeatures_ )
32512       {}
32513 
ExternalFencePropertiesVULKAN_HPP_NAMESPACE::layout::ExternalFenceProperties32514       ExternalFenceProperties( VkExternalFenceProperties const & rhs )
32515       {
32516         *reinterpret_cast<VkExternalFenceProperties*>(this) = rhs;
32517       }
32518 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalFenceProperties32519       ExternalFenceProperties& operator=( VkExternalFenceProperties const & rhs )
32520       {
32521         *reinterpret_cast<VkExternalFenceProperties*>(this) = rhs;
32522         return *this;
32523       }
32524 
32525     public:
32526       vk::StructureType sType = StructureType::eExternalFenceProperties;
32527       void* pNext = nullptr;
32528       vk::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
32529       vk::ExternalFenceHandleTypeFlags compatibleHandleTypes;
32530       vk::ExternalFenceFeatureFlags externalFenceFeatures;
32531     };
32532     static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "layout struct and wrapper have different size!" );
32533   }
32534 
32535   struct ExternalFenceProperties : public layout::ExternalFenceProperties
32536   {
operator VkExternalFenceProperties const&VULKAN_HPP_NAMESPACE::ExternalFenceProperties32537     operator VkExternalFenceProperties const&() const
32538     {
32539       return *reinterpret_cast<const VkExternalFenceProperties*>( this );
32540     }
32541 
operator VkExternalFenceProperties&VULKAN_HPP_NAMESPACE::ExternalFenceProperties32542     operator VkExternalFenceProperties &()
32543     {
32544       return *reinterpret_cast<VkExternalFenceProperties*>( this );
32545     }
32546 
operator ==VULKAN_HPP_NAMESPACE::ExternalFenceProperties32547     bool operator==( ExternalFenceProperties const& rhs ) const
32548     {
32549       return ( sType == rhs.sType )
32550           && ( pNext == rhs.pNext )
32551           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
32552           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
32553           && ( externalFenceFeatures == rhs.externalFenceFeatures );
32554     }
32555 
operator !=VULKAN_HPP_NAMESPACE::ExternalFenceProperties32556     bool operator!=( ExternalFenceProperties const& rhs ) const
32557     {
32558       return !operator==( rhs );
32559     }
32560 
32561   private:
32562     using layout::ExternalFenceProperties::sType;
32563   };
32564   static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
32565   static_assert( std::is_standard_layout<ExternalFenceProperties>::value, "struct wrapper is not a standard layout!" );
32566 
32567 #ifdef VK_USE_PLATFORM_ANDROID_KHR
32568 
32569   namespace layout
32570   {
32571     struct ExternalFormatANDROID
32572     {
32573     protected:
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::layout::ExternalFormatANDROID32574       ExternalFormatANDROID( uint64_t externalFormat_ = 0 )
32575         : externalFormat( externalFormat_ )
32576       {}
32577 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::layout::ExternalFormatANDROID32578       ExternalFormatANDROID( VkExternalFormatANDROID const & rhs )
32579       {
32580         *reinterpret_cast<VkExternalFormatANDROID*>(this) = rhs;
32581       }
32582 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalFormatANDROID32583       ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs )
32584       {
32585         *reinterpret_cast<VkExternalFormatANDROID*>(this) = rhs;
32586         return *this;
32587       }
32588 
32589     public:
32590       vk::StructureType sType = StructureType::eExternalFormatANDROID;
32591       void* pNext = nullptr;
32592       uint64_t externalFormat;
32593     };
32594     static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "layout struct and wrapper have different size!" );
32595   }
32596 
32597   struct ExternalFormatANDROID : public layout::ExternalFormatANDROID
32598   {
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID32599     ExternalFormatANDROID( uint64_t externalFormat_ = 0 )
32600       : layout::ExternalFormatANDROID( externalFormat_ )
32601     {}
32602 
ExternalFormatANDROIDVULKAN_HPP_NAMESPACE::ExternalFormatANDROID32603     ExternalFormatANDROID( VkExternalFormatANDROID const & rhs )
32604       : layout::ExternalFormatANDROID( rhs )
32605     {}
32606 
operator =VULKAN_HPP_NAMESPACE::ExternalFormatANDROID32607     ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs )
32608     {
32609       *reinterpret_cast<VkExternalFormatANDROID*>(this) = rhs;
32610       return *this;
32611     }
32612 
setPNextVULKAN_HPP_NAMESPACE::ExternalFormatANDROID32613     ExternalFormatANDROID & setPNext( void* pNext_ )
32614     {
32615       pNext = pNext_;
32616       return *this;
32617     }
32618 
setExternalFormatVULKAN_HPP_NAMESPACE::ExternalFormatANDROID32619     ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ )
32620     {
32621       externalFormat = externalFormat_;
32622       return *this;
32623     }
32624 
operator VkExternalFormatANDROID const&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID32625     operator VkExternalFormatANDROID const&() const
32626     {
32627       return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
32628     }
32629 
operator VkExternalFormatANDROID&VULKAN_HPP_NAMESPACE::ExternalFormatANDROID32630     operator VkExternalFormatANDROID &()
32631     {
32632       return *reinterpret_cast<VkExternalFormatANDROID*>( this );
32633     }
32634 
operator ==VULKAN_HPP_NAMESPACE::ExternalFormatANDROID32635     bool operator==( ExternalFormatANDROID const& rhs ) const
32636     {
32637       return ( sType == rhs.sType )
32638           && ( pNext == rhs.pNext )
32639           && ( externalFormat == rhs.externalFormat );
32640     }
32641 
operator !=VULKAN_HPP_NAMESPACE::ExternalFormatANDROID32642     bool operator!=( ExternalFormatANDROID const& rhs ) const
32643     {
32644       return !operator==( rhs );
32645     }
32646 
32647   private:
32648     using layout::ExternalFormatANDROID::sType;
32649   };
32650   static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
32651   static_assert( std::is_standard_layout<ExternalFormatANDROID>::value, "struct wrapper is not a standard layout!" );
32652 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
32653 
32654   namespace layout
32655   {
32656     struct ExternalImageFormatProperties
32657     {
32658     protected:
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::layout::ExternalImageFormatProperties32659       ExternalImageFormatProperties( vk::ExternalMemoryProperties externalMemoryProperties_ = vk::ExternalMemoryProperties() )
32660         : externalMemoryProperties( externalMemoryProperties_ )
32661       {}
32662 
ExternalImageFormatPropertiesVULKAN_HPP_NAMESPACE::layout::ExternalImageFormatProperties32663       ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs )
32664       {
32665         *reinterpret_cast<VkExternalImageFormatProperties*>(this) = rhs;
32666       }
32667 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalImageFormatProperties32668       ExternalImageFormatProperties& operator=( VkExternalImageFormatProperties const & rhs )
32669       {
32670         *reinterpret_cast<VkExternalImageFormatProperties*>(this) = rhs;
32671         return *this;
32672       }
32673 
32674     public:
32675       vk::StructureType sType = StructureType::eExternalImageFormatProperties;
32676       void* pNext = nullptr;
32677       vk::ExternalMemoryProperties externalMemoryProperties;
32678     };
32679     static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "layout struct and wrapper have different size!" );
32680   }
32681 
32682   struct ExternalImageFormatProperties : public layout::ExternalImageFormatProperties
32683   {
operator VkExternalImageFormatProperties const&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties32684     operator VkExternalImageFormatProperties const&() const
32685     {
32686       return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
32687     }
32688 
operator VkExternalImageFormatProperties&VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties32689     operator VkExternalImageFormatProperties &()
32690     {
32691       return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
32692     }
32693 
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties32694     bool operator==( ExternalImageFormatProperties const& rhs ) const
32695     {
32696       return ( sType == rhs.sType )
32697           && ( pNext == rhs.pNext )
32698           && ( externalMemoryProperties == rhs.externalMemoryProperties );
32699     }
32700 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties32701     bool operator!=( ExternalImageFormatProperties const& rhs ) const
32702     {
32703       return !operator==( rhs );
32704     }
32705 
32706   private:
32707     using layout::ExternalImageFormatProperties::sType;
32708   };
32709   static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
32710   static_assert( std::is_standard_layout<ExternalImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
32711 
32712   struct ImageFormatProperties
32713   {
operator VkImageFormatProperties const&VULKAN_HPP_NAMESPACE::ImageFormatProperties32714     operator VkImageFormatProperties const&() const
32715     {
32716       return *reinterpret_cast<const VkImageFormatProperties*>( this );
32717     }
32718 
operator VkImageFormatProperties&VULKAN_HPP_NAMESPACE::ImageFormatProperties32719     operator VkImageFormatProperties &()
32720     {
32721       return *reinterpret_cast<VkImageFormatProperties*>( this );
32722     }
32723 
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties32724     bool operator==( ImageFormatProperties const& rhs ) const
32725     {
32726       return ( maxExtent == rhs.maxExtent )
32727           && ( maxMipLevels == rhs.maxMipLevels )
32728           && ( maxArrayLayers == rhs.maxArrayLayers )
32729           && ( sampleCounts == rhs.sampleCounts )
32730           && ( maxResourceSize == rhs.maxResourceSize );
32731     }
32732 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties32733     bool operator!=( ImageFormatProperties const& rhs ) const
32734     {
32735       return !operator==( rhs );
32736     }
32737 
32738   public:
32739     vk::Extent3D maxExtent;
32740     uint32_t maxMipLevels;
32741     uint32_t maxArrayLayers;
32742     vk::SampleCountFlags sampleCounts;
32743     vk::DeviceSize maxResourceSize;
32744   };
32745   static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
32746   static_assert( std::is_standard_layout<ImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
32747 
32748   struct ExternalImageFormatPropertiesNV
32749   {
operator VkExternalImageFormatPropertiesNV const&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV32750     operator VkExternalImageFormatPropertiesNV const&() const
32751     {
32752       return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
32753     }
32754 
operator VkExternalImageFormatPropertiesNV&VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV32755     operator VkExternalImageFormatPropertiesNV &()
32756     {
32757       return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
32758     }
32759 
operator ==VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV32760     bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const
32761     {
32762       return ( imageFormatProperties == rhs.imageFormatProperties )
32763           && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
32764           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
32765           && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
32766     }
32767 
operator !=VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV32768     bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const
32769     {
32770       return !operator==( rhs );
32771     }
32772 
32773   public:
32774     vk::ImageFormatProperties imageFormatProperties;
32775     vk::ExternalMemoryFeatureFlagsNV externalMemoryFeatures;
32776     vk::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
32777     vk::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
32778   };
32779   static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
32780   static_assert( std::is_standard_layout<ExternalImageFormatPropertiesNV>::value, "struct wrapper is not a standard layout!" );
32781 
32782   namespace layout
32783   {
32784     struct ExternalMemoryBufferCreateInfo
32785     {
32786     protected:
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::layout::ExternalMemoryBufferCreateInfo32787       ExternalMemoryBufferCreateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
32788         : handleTypes( handleTypes_ )
32789       {}
32790 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::layout::ExternalMemoryBufferCreateInfo32791       ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs )
32792       {
32793         *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this) = rhs;
32794       }
32795 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalMemoryBufferCreateInfo32796       ExternalMemoryBufferCreateInfo& operator=( VkExternalMemoryBufferCreateInfo const & rhs )
32797       {
32798         *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this) = rhs;
32799         return *this;
32800       }
32801 
32802     public:
32803       vk::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
32804       const void* pNext = nullptr;
32805       vk::ExternalMemoryHandleTypeFlags handleTypes;
32806     };
32807     static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "layout struct and wrapper have different size!" );
32808   }
32809 
32810   struct ExternalMemoryBufferCreateInfo : public layout::ExternalMemoryBufferCreateInfo
32811   {
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32812     ExternalMemoryBufferCreateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
32813       : layout::ExternalMemoryBufferCreateInfo( handleTypes_ )
32814     {}
32815 
ExternalMemoryBufferCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32816     ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs )
32817       : layout::ExternalMemoryBufferCreateInfo( rhs )
32818     {}
32819 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32820     ExternalMemoryBufferCreateInfo& operator=( VkExternalMemoryBufferCreateInfo const & rhs )
32821     {
32822       *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this) = rhs;
32823       return *this;
32824     }
32825 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32826     ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ )
32827     {
32828       pNext = pNext_;
32829       return *this;
32830     }
32831 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32832     ExternalMemoryBufferCreateInfo & setHandleTypes( vk::ExternalMemoryHandleTypeFlags handleTypes_ )
32833     {
32834       handleTypes = handleTypes_;
32835       return *this;
32836     }
32837 
operator VkExternalMemoryBufferCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32838     operator VkExternalMemoryBufferCreateInfo const&() const
32839     {
32840       return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
32841     }
32842 
operator VkExternalMemoryBufferCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32843     operator VkExternalMemoryBufferCreateInfo &()
32844     {
32845       return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
32846     }
32847 
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32848     bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const
32849     {
32850       return ( sType == rhs.sType )
32851           && ( pNext == rhs.pNext )
32852           && ( handleTypes == rhs.handleTypes );
32853     }
32854 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo32855     bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const
32856     {
32857       return !operator==( rhs );
32858     }
32859 
32860   private:
32861     using layout::ExternalMemoryBufferCreateInfo::sType;
32862   };
32863   static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
32864   static_assert( std::is_standard_layout<ExternalMemoryBufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
32865 
32866   namespace layout
32867   {
32868     struct ExternalMemoryImageCreateInfo
32869     {
32870     protected:
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfo32871       ExternalMemoryImageCreateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
32872         : handleTypes( handleTypes_ )
32873       {}
32874 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfo32875       ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs )
32876       {
32877         *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this) = rhs;
32878       }
32879 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfo32880       ExternalMemoryImageCreateInfo& operator=( VkExternalMemoryImageCreateInfo const & rhs )
32881       {
32882         *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this) = rhs;
32883         return *this;
32884       }
32885 
32886     public:
32887       vk::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
32888       const void* pNext = nullptr;
32889       vk::ExternalMemoryHandleTypeFlags handleTypes;
32890     };
32891     static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "layout struct and wrapper have different size!" );
32892   }
32893 
32894   struct ExternalMemoryImageCreateInfo : public layout::ExternalMemoryImageCreateInfo
32895   {
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32896     ExternalMemoryImageCreateInfo( vk::ExternalMemoryHandleTypeFlags handleTypes_ = vk::ExternalMemoryHandleTypeFlags() )
32897       : layout::ExternalMemoryImageCreateInfo( handleTypes_ )
32898     {}
32899 
ExternalMemoryImageCreateInfoVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32900     ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs )
32901       : layout::ExternalMemoryImageCreateInfo( rhs )
32902     {}
32903 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32904     ExternalMemoryImageCreateInfo& operator=( VkExternalMemoryImageCreateInfo const & rhs )
32905     {
32906       *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this) = rhs;
32907       return *this;
32908     }
32909 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32910     ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ )
32911     {
32912       pNext = pNext_;
32913       return *this;
32914     }
32915 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32916     ExternalMemoryImageCreateInfo & setHandleTypes( vk::ExternalMemoryHandleTypeFlags handleTypes_ )
32917     {
32918       handleTypes = handleTypes_;
32919       return *this;
32920     }
32921 
operator VkExternalMemoryImageCreateInfo const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32922     operator VkExternalMemoryImageCreateInfo const&() const
32923     {
32924       return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
32925     }
32926 
operator VkExternalMemoryImageCreateInfo&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32927     operator VkExternalMemoryImageCreateInfo &()
32928     {
32929       return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
32930     }
32931 
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32932     bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const
32933     {
32934       return ( sType == rhs.sType )
32935           && ( pNext == rhs.pNext )
32936           && ( handleTypes == rhs.handleTypes );
32937     }
32938 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo32939     bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const
32940     {
32941       return !operator==( rhs );
32942     }
32943 
32944   private:
32945     using layout::ExternalMemoryImageCreateInfo::sType;
32946   };
32947   static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
32948   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
32949 
32950   namespace layout
32951   {
32952     struct ExternalMemoryImageCreateInfoNV
32953     {
32954     protected:
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfoNV32955       ExternalMemoryImageCreateInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ = vk::ExternalMemoryHandleTypeFlagsNV() )
32956         : handleTypes( handleTypes_ )
32957       {}
32958 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfoNV32959       ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs )
32960       {
32961         *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this) = rhs;
32962       }
32963 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalMemoryImageCreateInfoNV32964       ExternalMemoryImageCreateInfoNV& operator=( VkExternalMemoryImageCreateInfoNV const & rhs )
32965       {
32966         *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this) = rhs;
32967         return *this;
32968       }
32969 
32970     public:
32971       vk::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
32972       const void* pNext = nullptr;
32973       vk::ExternalMemoryHandleTypeFlagsNV handleTypes;
32974     };
32975     static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "layout struct and wrapper have different size!" );
32976   }
32977 
32978   struct ExternalMemoryImageCreateInfoNV : public layout::ExternalMemoryImageCreateInfoNV
32979   {
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV32980     ExternalMemoryImageCreateInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ = vk::ExternalMemoryHandleTypeFlagsNV() )
32981       : layout::ExternalMemoryImageCreateInfoNV( handleTypes_ )
32982     {}
32983 
ExternalMemoryImageCreateInfoNVVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV32984     ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs )
32985       : layout::ExternalMemoryImageCreateInfoNV( rhs )
32986     {}
32987 
operator =VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV32988     ExternalMemoryImageCreateInfoNV& operator=( VkExternalMemoryImageCreateInfoNV const & rhs )
32989     {
32990       *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this) = rhs;
32991       return *this;
32992     }
32993 
setPNextVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV32994     ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ )
32995     {
32996       pNext = pNext_;
32997       return *this;
32998     }
32999 
setHandleTypesVULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV33000     ExternalMemoryImageCreateInfoNV & setHandleTypes( vk::ExternalMemoryHandleTypeFlagsNV handleTypes_ )
33001     {
33002       handleTypes = handleTypes_;
33003       return *this;
33004     }
33005 
operator VkExternalMemoryImageCreateInfoNV const&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV33006     operator VkExternalMemoryImageCreateInfoNV const&() const
33007     {
33008       return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
33009     }
33010 
operator VkExternalMemoryImageCreateInfoNV&VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV33011     operator VkExternalMemoryImageCreateInfoNV &()
33012     {
33013       return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
33014     }
33015 
operator ==VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV33016     bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const
33017     {
33018       return ( sType == rhs.sType )
33019           && ( pNext == rhs.pNext )
33020           && ( handleTypes == rhs.handleTypes );
33021     }
33022 
operator !=VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV33023     bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const
33024     {
33025       return !operator==( rhs );
33026     }
33027 
33028   private:
33029     using layout::ExternalMemoryImageCreateInfoNV::sType;
33030   };
33031   static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
33032   static_assert( std::is_standard_layout<ExternalMemoryImageCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
33033 
33034   namespace layout
33035   {
33036     struct ExternalSemaphoreProperties
33037     {
33038     protected:
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::layout::ExternalSemaphoreProperties33039       ExternalSemaphoreProperties( vk::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = vk::ExternalSemaphoreHandleTypeFlags(),
33040                                    vk::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = vk::ExternalSemaphoreHandleTypeFlags(),
33041                                    vk::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = vk::ExternalSemaphoreFeatureFlags() )
33042         : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
33043         , compatibleHandleTypes( compatibleHandleTypes_ )
33044         , externalSemaphoreFeatures( externalSemaphoreFeatures_ )
33045       {}
33046 
ExternalSemaphorePropertiesVULKAN_HPP_NAMESPACE::layout::ExternalSemaphoreProperties33047       ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs )
33048       {
33049         *reinterpret_cast<VkExternalSemaphoreProperties*>(this) = rhs;
33050       }
33051 
operator =VULKAN_HPP_NAMESPACE::layout::ExternalSemaphoreProperties33052       ExternalSemaphoreProperties& operator=( VkExternalSemaphoreProperties const & rhs )
33053       {
33054         *reinterpret_cast<VkExternalSemaphoreProperties*>(this) = rhs;
33055         return *this;
33056       }
33057 
33058     public:
33059       vk::StructureType sType = StructureType::eExternalSemaphoreProperties;
33060       void* pNext = nullptr;
33061       vk::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
33062       vk::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
33063       vk::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
33064     };
33065     static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "layout struct and wrapper have different size!" );
33066   }
33067 
33068   struct ExternalSemaphoreProperties : public layout::ExternalSemaphoreProperties
33069   {
operator VkExternalSemaphoreProperties const&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties33070     operator VkExternalSemaphoreProperties const&() const
33071     {
33072       return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
33073     }
33074 
operator VkExternalSemaphoreProperties&VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties33075     operator VkExternalSemaphoreProperties &()
33076     {
33077       return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
33078     }
33079 
operator ==VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties33080     bool operator==( ExternalSemaphoreProperties const& rhs ) const
33081     {
33082       return ( sType == rhs.sType )
33083           && ( pNext == rhs.pNext )
33084           && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
33085           && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
33086           && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
33087     }
33088 
operator !=VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties33089     bool operator!=( ExternalSemaphoreProperties const& rhs ) const
33090     {
33091       return !operator==( rhs );
33092     }
33093 
33094   private:
33095     using layout::ExternalSemaphoreProperties::sType;
33096   };
33097   static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
33098   static_assert( std::is_standard_layout<ExternalSemaphoreProperties>::value, "struct wrapper is not a standard layout!" );
33099 
33100   namespace layout
33101   {
33102     struct FenceCreateInfo
33103     {
33104     protected:
FenceCreateInfoVULKAN_HPP_NAMESPACE::layout::FenceCreateInfo33105       FenceCreateInfo( vk::FenceCreateFlags flags_ = vk::FenceCreateFlags() )
33106         : flags( flags_ )
33107       {}
33108 
FenceCreateInfoVULKAN_HPP_NAMESPACE::layout::FenceCreateInfo33109       FenceCreateInfo( VkFenceCreateInfo const & rhs )
33110       {
33111         *reinterpret_cast<VkFenceCreateInfo*>(this) = rhs;
33112       }
33113 
operator =VULKAN_HPP_NAMESPACE::layout::FenceCreateInfo33114       FenceCreateInfo& operator=( VkFenceCreateInfo const & rhs )
33115       {
33116         *reinterpret_cast<VkFenceCreateInfo*>(this) = rhs;
33117         return *this;
33118       }
33119 
33120     public:
33121       vk::StructureType sType = StructureType::eFenceCreateInfo;
33122       const void* pNext = nullptr;
33123       vk::FenceCreateFlags flags;
33124     };
33125     static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "layout struct and wrapper have different size!" );
33126   }
33127 
33128   struct FenceCreateInfo : public layout::FenceCreateInfo
33129   {
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo33130     FenceCreateInfo( vk::FenceCreateFlags flags_ = vk::FenceCreateFlags() )
33131       : layout::FenceCreateInfo( flags_ )
33132     {}
33133 
FenceCreateInfoVULKAN_HPP_NAMESPACE::FenceCreateInfo33134     FenceCreateInfo( VkFenceCreateInfo const & rhs )
33135       : layout::FenceCreateInfo( rhs )
33136     {}
33137 
operator =VULKAN_HPP_NAMESPACE::FenceCreateInfo33138     FenceCreateInfo& operator=( VkFenceCreateInfo const & rhs )
33139     {
33140       *reinterpret_cast<VkFenceCreateInfo*>(this) = rhs;
33141       return *this;
33142     }
33143 
setPNextVULKAN_HPP_NAMESPACE::FenceCreateInfo33144     FenceCreateInfo & setPNext( const void* pNext_ )
33145     {
33146       pNext = pNext_;
33147       return *this;
33148     }
33149 
setFlagsVULKAN_HPP_NAMESPACE::FenceCreateInfo33150     FenceCreateInfo & setFlags( vk::FenceCreateFlags flags_ )
33151     {
33152       flags = flags_;
33153       return *this;
33154     }
33155 
operator VkFenceCreateInfo const&VULKAN_HPP_NAMESPACE::FenceCreateInfo33156     operator VkFenceCreateInfo const&() const
33157     {
33158       return *reinterpret_cast<const VkFenceCreateInfo*>( this );
33159     }
33160 
operator VkFenceCreateInfo&VULKAN_HPP_NAMESPACE::FenceCreateInfo33161     operator VkFenceCreateInfo &()
33162     {
33163       return *reinterpret_cast<VkFenceCreateInfo*>( this );
33164     }
33165 
operator ==VULKAN_HPP_NAMESPACE::FenceCreateInfo33166     bool operator==( FenceCreateInfo const& rhs ) const
33167     {
33168       return ( sType == rhs.sType )
33169           && ( pNext == rhs.pNext )
33170           && ( flags == rhs.flags );
33171     }
33172 
operator !=VULKAN_HPP_NAMESPACE::FenceCreateInfo33173     bool operator!=( FenceCreateInfo const& rhs ) const
33174     {
33175       return !operator==( rhs );
33176     }
33177 
33178   private:
33179     using layout::FenceCreateInfo::sType;
33180   };
33181   static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
33182   static_assert( std::is_standard_layout<FenceCreateInfo>::value, "struct wrapper is not a standard layout!" );
33183 
33184   namespace layout
33185   {
33186     struct FenceGetFdInfoKHR
33187     {
33188     protected:
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::FenceGetFdInfoKHR33189       FenceGetFdInfoKHR( vk::Fence fence_ = vk::Fence(),
33190                          vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
33191         : fence( fence_ )
33192         , handleType( handleType_ )
33193       {}
33194 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::FenceGetFdInfoKHR33195       FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs )
33196       {
33197         *reinterpret_cast<VkFenceGetFdInfoKHR*>(this) = rhs;
33198       }
33199 
operator =VULKAN_HPP_NAMESPACE::layout::FenceGetFdInfoKHR33200       FenceGetFdInfoKHR& operator=( VkFenceGetFdInfoKHR const & rhs )
33201       {
33202         *reinterpret_cast<VkFenceGetFdInfoKHR*>(this) = rhs;
33203         return *this;
33204       }
33205 
33206     public:
33207       vk::StructureType sType = StructureType::eFenceGetFdInfoKHR;
33208       const void* pNext = nullptr;
33209       vk::Fence fence;
33210       vk::ExternalFenceHandleTypeFlagBits handleType;
33211     };
33212     static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "layout struct and wrapper have different size!" );
33213   }
33214 
33215   struct FenceGetFdInfoKHR : public layout::FenceGetFdInfoKHR
33216   {
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33217     FenceGetFdInfoKHR( vk::Fence fence_ = vk::Fence(),
33218                        vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
33219       : layout::FenceGetFdInfoKHR( fence_, handleType_ )
33220     {}
33221 
FenceGetFdInfoKHRVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33222     FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs )
33223       : layout::FenceGetFdInfoKHR( rhs )
33224     {}
33225 
operator =VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33226     FenceGetFdInfoKHR& operator=( VkFenceGetFdInfoKHR const & rhs )
33227     {
33228       *reinterpret_cast<VkFenceGetFdInfoKHR*>(this) = rhs;
33229       return *this;
33230     }
33231 
setPNextVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33232     FenceGetFdInfoKHR & setPNext( const void* pNext_ )
33233     {
33234       pNext = pNext_;
33235       return *this;
33236     }
33237 
setFenceVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33238     FenceGetFdInfoKHR & setFence( vk::Fence fence_ )
33239     {
33240       fence = fence_;
33241       return *this;
33242     }
33243 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33244     FenceGetFdInfoKHR & setHandleType( vk::ExternalFenceHandleTypeFlagBits handleType_ )
33245     {
33246       handleType = handleType_;
33247       return *this;
33248     }
33249 
operator VkFenceGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33250     operator VkFenceGetFdInfoKHR const&() const
33251     {
33252       return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
33253     }
33254 
operator VkFenceGetFdInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33255     operator VkFenceGetFdInfoKHR &()
33256     {
33257       return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
33258     }
33259 
operator ==VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33260     bool operator==( FenceGetFdInfoKHR const& rhs ) const
33261     {
33262       return ( sType == rhs.sType )
33263           && ( pNext == rhs.pNext )
33264           && ( fence == rhs.fence )
33265           && ( handleType == rhs.handleType );
33266     }
33267 
operator !=VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR33268     bool operator!=( FenceGetFdInfoKHR const& rhs ) const
33269     {
33270       return !operator==( rhs );
33271     }
33272 
33273   private:
33274     using layout::FenceGetFdInfoKHR::sType;
33275   };
33276   static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
33277   static_assert( std::is_standard_layout<FenceGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
33278 
33279 #ifdef VK_USE_PLATFORM_WIN32_KHR
33280 
33281   namespace layout
33282   {
33283     struct FenceGetWin32HandleInfoKHR
33284     {
33285     protected:
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::FenceGetWin32HandleInfoKHR33286       FenceGetWin32HandleInfoKHR( vk::Fence fence_ = vk::Fence(),
33287                                   vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
33288         : fence( fence_ )
33289         , handleType( handleType_ )
33290       {}
33291 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::FenceGetWin32HandleInfoKHR33292       FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs )
33293       {
33294         *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this) = rhs;
33295       }
33296 
operator =VULKAN_HPP_NAMESPACE::layout::FenceGetWin32HandleInfoKHR33297       FenceGetWin32HandleInfoKHR& operator=( VkFenceGetWin32HandleInfoKHR const & rhs )
33298       {
33299         *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this) = rhs;
33300         return *this;
33301       }
33302 
33303     public:
33304       vk::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
33305       const void* pNext = nullptr;
33306       vk::Fence fence;
33307       vk::ExternalFenceHandleTypeFlagBits handleType;
33308     };
33309     static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
33310   }
33311 
33312   struct FenceGetWin32HandleInfoKHR : public layout::FenceGetWin32HandleInfoKHR
33313   {
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33314     FenceGetWin32HandleInfoKHR( vk::Fence fence_ = vk::Fence(),
33315                                 vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
33316       : layout::FenceGetWin32HandleInfoKHR( fence_, handleType_ )
33317     {}
33318 
FenceGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33319     FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs )
33320       : layout::FenceGetWin32HandleInfoKHR( rhs )
33321     {}
33322 
operator =VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33323     FenceGetWin32HandleInfoKHR& operator=( VkFenceGetWin32HandleInfoKHR const & rhs )
33324     {
33325       *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this) = rhs;
33326       return *this;
33327     }
33328 
setPNextVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33329     FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
33330     {
33331       pNext = pNext_;
33332       return *this;
33333     }
33334 
setFenceVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33335     FenceGetWin32HandleInfoKHR & setFence( vk::Fence fence_ )
33336     {
33337       fence = fence_;
33338       return *this;
33339     }
33340 
setHandleTypeVULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33341     FenceGetWin32HandleInfoKHR & setHandleType( vk::ExternalFenceHandleTypeFlagBits handleType_ )
33342     {
33343       handleType = handleType_;
33344       return *this;
33345     }
33346 
operator VkFenceGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33347     operator VkFenceGetWin32HandleInfoKHR const&() const
33348     {
33349       return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
33350     }
33351 
operator VkFenceGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33352     operator VkFenceGetWin32HandleInfoKHR &()
33353     {
33354       return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
33355     }
33356 
operator ==VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33357     bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const
33358     {
33359       return ( sType == rhs.sType )
33360           && ( pNext == rhs.pNext )
33361           && ( fence == rhs.fence )
33362           && ( handleType == rhs.handleType );
33363     }
33364 
operator !=VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR33365     bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const
33366     {
33367       return !operator==( rhs );
33368     }
33369 
33370   private:
33371     using layout::FenceGetWin32HandleInfoKHR::sType;
33372   };
33373   static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
33374   static_assert( std::is_standard_layout<FenceGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
33375 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
33376 
33377   namespace layout
33378   {
33379     struct FilterCubicImageViewImageFormatPropertiesEXT
33380     {
33381     protected:
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::layout::FilterCubicImageViewImageFormatPropertiesEXT33382       FilterCubicImageViewImageFormatPropertiesEXT( vk::Bool32 filterCubic_ = 0,
33383                                                     vk::Bool32 filterCubicMinmax_ = 0 )
33384         : filterCubic( filterCubic_ )
33385         , filterCubicMinmax( filterCubicMinmax_ )
33386       {}
33387 
FilterCubicImageViewImageFormatPropertiesEXTVULKAN_HPP_NAMESPACE::layout::FilterCubicImageViewImageFormatPropertiesEXT33388       FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs )
33389       {
33390         *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(this) = rhs;
33391       }
33392 
operator =VULKAN_HPP_NAMESPACE::layout::FilterCubicImageViewImageFormatPropertiesEXT33393       FilterCubicImageViewImageFormatPropertiesEXT& operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs )
33394       {
33395         *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(this) = rhs;
33396         return *this;
33397       }
33398 
33399     public:
33400       vk::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
33401       void* pNext = nullptr;
33402       vk::Bool32 filterCubic;
33403       vk::Bool32 filterCubicMinmax;
33404     };
33405     static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "layout struct and wrapper have different size!" );
33406   }
33407 
33408   struct FilterCubicImageViewImageFormatPropertiesEXT : public layout::FilterCubicImageViewImageFormatPropertiesEXT
33409   {
operator VkFilterCubicImageViewImageFormatPropertiesEXT const&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT33410     operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const
33411     {
33412       return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
33413     }
33414 
operator VkFilterCubicImageViewImageFormatPropertiesEXT&VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT33415     operator VkFilterCubicImageViewImageFormatPropertiesEXT &()
33416     {
33417       return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
33418     }
33419 
operator ==VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT33420     bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const
33421     {
33422       return ( sType == rhs.sType )
33423           && ( pNext == rhs.pNext )
33424           && ( filterCubic == rhs.filterCubic )
33425           && ( filterCubicMinmax == rhs.filterCubicMinmax );
33426     }
33427 
operator !=VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT33428     bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const
33429     {
33430       return !operator==( rhs );
33431     }
33432 
33433   private:
33434     using layout::FilterCubicImageViewImageFormatPropertiesEXT::sType;
33435   };
33436   static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
33437   static_assert( std::is_standard_layout<FilterCubicImageViewImageFormatPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
33438 
33439   struct FormatProperties
33440   {
operator VkFormatProperties const&VULKAN_HPP_NAMESPACE::FormatProperties33441     operator VkFormatProperties const&() const
33442     {
33443       return *reinterpret_cast<const VkFormatProperties*>( this );
33444     }
33445 
operator VkFormatProperties&VULKAN_HPP_NAMESPACE::FormatProperties33446     operator VkFormatProperties &()
33447     {
33448       return *reinterpret_cast<VkFormatProperties*>( this );
33449     }
33450 
operator ==VULKAN_HPP_NAMESPACE::FormatProperties33451     bool operator==( FormatProperties const& rhs ) const
33452     {
33453       return ( linearTilingFeatures == rhs.linearTilingFeatures )
33454           && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
33455           && ( bufferFeatures == rhs.bufferFeatures );
33456     }
33457 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties33458     bool operator!=( FormatProperties const& rhs ) const
33459     {
33460       return !operator==( rhs );
33461     }
33462 
33463   public:
33464     vk::FormatFeatureFlags linearTilingFeatures;
33465     vk::FormatFeatureFlags optimalTilingFeatures;
33466     vk::FormatFeatureFlags bufferFeatures;
33467   };
33468   static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
33469   static_assert( std::is_standard_layout<FormatProperties>::value, "struct wrapper is not a standard layout!" );
33470 
33471   namespace layout
33472   {
33473     struct FormatProperties2
33474     {
33475     protected:
FormatProperties2VULKAN_HPP_NAMESPACE::layout::FormatProperties233476       FormatProperties2( vk::FormatProperties formatProperties_ = vk::FormatProperties() )
33477         : formatProperties( formatProperties_ )
33478       {}
33479 
FormatProperties2VULKAN_HPP_NAMESPACE::layout::FormatProperties233480       FormatProperties2( VkFormatProperties2 const & rhs )
33481       {
33482         *reinterpret_cast<VkFormatProperties2*>(this) = rhs;
33483       }
33484 
operator =VULKAN_HPP_NAMESPACE::layout::FormatProperties233485       FormatProperties2& operator=( VkFormatProperties2 const & rhs )
33486       {
33487         *reinterpret_cast<VkFormatProperties2*>(this) = rhs;
33488         return *this;
33489       }
33490 
33491     public:
33492       vk::StructureType sType = StructureType::eFormatProperties2;
33493       void* pNext = nullptr;
33494       vk::FormatProperties formatProperties;
33495     };
33496     static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "layout struct and wrapper have different size!" );
33497   }
33498 
33499   struct FormatProperties2 : public layout::FormatProperties2
33500   {
operator VkFormatProperties2 const&VULKAN_HPP_NAMESPACE::FormatProperties233501     operator VkFormatProperties2 const&() const
33502     {
33503       return *reinterpret_cast<const VkFormatProperties2*>( this );
33504     }
33505 
operator VkFormatProperties2&VULKAN_HPP_NAMESPACE::FormatProperties233506     operator VkFormatProperties2 &()
33507     {
33508       return *reinterpret_cast<VkFormatProperties2*>( this );
33509     }
33510 
operator ==VULKAN_HPP_NAMESPACE::FormatProperties233511     bool operator==( FormatProperties2 const& rhs ) const
33512     {
33513       return ( sType == rhs.sType )
33514           && ( pNext == rhs.pNext )
33515           && ( formatProperties == rhs.formatProperties );
33516     }
33517 
operator !=VULKAN_HPP_NAMESPACE::FormatProperties233518     bool operator!=( FormatProperties2 const& rhs ) const
33519     {
33520       return !operator==( rhs );
33521     }
33522 
33523   private:
33524     using layout::FormatProperties2::sType;
33525   };
33526   static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
33527   static_assert( std::is_standard_layout<FormatProperties2>::value, "struct wrapper is not a standard layout!" );
33528 
33529   namespace layout
33530   {
33531     struct FramebufferAttachmentImageInfoKHR
33532     {
33533     protected:
FramebufferAttachmentImageInfoKHRVULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentImageInfoKHR33534       FramebufferAttachmentImageInfoKHR( vk::ImageCreateFlags flags_ = vk::ImageCreateFlags(),
33535                                          vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
33536                                          uint32_t width_ = 0,
33537                                          uint32_t height_ = 0,
33538                                          uint32_t layerCount_ = 0,
33539                                          uint32_t viewFormatCount_ = 0,
33540                                          const vk::Format* pViewFormats_ = nullptr )
33541         : flags( flags_ )
33542         , usage( usage_ )
33543         , width( width_ )
33544         , height( height_ )
33545         , layerCount( layerCount_ )
33546         , viewFormatCount( viewFormatCount_ )
33547         , pViewFormats( pViewFormats_ )
33548       {}
33549 
FramebufferAttachmentImageInfoKHRVULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentImageInfoKHR33550       FramebufferAttachmentImageInfoKHR( VkFramebufferAttachmentImageInfoKHR const & rhs )
33551       {
33552         *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>(this) = rhs;
33553       }
33554 
operator =VULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentImageInfoKHR33555       FramebufferAttachmentImageInfoKHR& operator=( VkFramebufferAttachmentImageInfoKHR const & rhs )
33556       {
33557         *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>(this) = rhs;
33558         return *this;
33559       }
33560 
33561     public:
33562       vk::StructureType sType = StructureType::eFramebufferAttachmentImageInfoKHR;
33563       const void* pNext = nullptr;
33564       vk::ImageCreateFlags flags;
33565       vk::ImageUsageFlags usage;
33566       uint32_t width;
33567       uint32_t height;
33568       uint32_t layerCount;
33569       uint32_t viewFormatCount;
33570       const vk::Format* pViewFormats;
33571     };
33572     static_assert( sizeof( FramebufferAttachmentImageInfoKHR ) == sizeof( VkFramebufferAttachmentImageInfoKHR ), "layout struct and wrapper have different size!" );
33573   }
33574 
33575   struct FramebufferAttachmentImageInfoKHR : public layout::FramebufferAttachmentImageInfoKHR
33576   {
FramebufferAttachmentImageInfoKHRVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33577     FramebufferAttachmentImageInfoKHR( vk::ImageCreateFlags flags_ = vk::ImageCreateFlags(),
33578                                        vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
33579                                        uint32_t width_ = 0,
33580                                        uint32_t height_ = 0,
33581                                        uint32_t layerCount_ = 0,
33582                                        uint32_t viewFormatCount_ = 0,
33583                                        const vk::Format* pViewFormats_ = nullptr )
33584       : layout::FramebufferAttachmentImageInfoKHR( flags_, usage_, width_, height_, layerCount_, viewFormatCount_, pViewFormats_ )
33585     {}
33586 
FramebufferAttachmentImageInfoKHRVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33587     FramebufferAttachmentImageInfoKHR( VkFramebufferAttachmentImageInfoKHR const & rhs )
33588       : layout::FramebufferAttachmentImageInfoKHR( rhs )
33589     {}
33590 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33591     FramebufferAttachmentImageInfoKHR& operator=( VkFramebufferAttachmentImageInfoKHR const & rhs )
33592     {
33593       *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>(this) = rhs;
33594       return *this;
33595     }
33596 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33597     FramebufferAttachmentImageInfoKHR & setPNext( const void* pNext_ )
33598     {
33599       pNext = pNext_;
33600       return *this;
33601     }
33602 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33603     FramebufferAttachmentImageInfoKHR & setFlags( vk::ImageCreateFlags flags_ )
33604     {
33605       flags = flags_;
33606       return *this;
33607     }
33608 
setUsageVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33609     FramebufferAttachmentImageInfoKHR & setUsage( vk::ImageUsageFlags usage_ )
33610     {
33611       usage = usage_;
33612       return *this;
33613     }
33614 
setWidthVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33615     FramebufferAttachmentImageInfoKHR & setWidth( uint32_t width_ )
33616     {
33617       width = width_;
33618       return *this;
33619     }
33620 
setHeightVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33621     FramebufferAttachmentImageInfoKHR & setHeight( uint32_t height_ )
33622     {
33623       height = height_;
33624       return *this;
33625     }
33626 
setLayerCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33627     FramebufferAttachmentImageInfoKHR & setLayerCount( uint32_t layerCount_ )
33628     {
33629       layerCount = layerCount_;
33630       return *this;
33631     }
33632 
setViewFormatCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33633     FramebufferAttachmentImageInfoKHR & setViewFormatCount( uint32_t viewFormatCount_ )
33634     {
33635       viewFormatCount = viewFormatCount_;
33636       return *this;
33637     }
33638 
setPViewFormatsVULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33639     FramebufferAttachmentImageInfoKHR & setPViewFormats( const vk::Format* pViewFormats_ )
33640     {
33641       pViewFormats = pViewFormats_;
33642       return *this;
33643     }
33644 
operator VkFramebufferAttachmentImageInfoKHR const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33645     operator VkFramebufferAttachmentImageInfoKHR const&() const
33646     {
33647       return *reinterpret_cast<const VkFramebufferAttachmentImageInfoKHR*>( this );
33648     }
33649 
operator VkFramebufferAttachmentImageInfoKHR&VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33650     operator VkFramebufferAttachmentImageInfoKHR &()
33651     {
33652       return *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>( this );
33653     }
33654 
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33655     bool operator==( FramebufferAttachmentImageInfoKHR const& rhs ) const
33656     {
33657       return ( sType == rhs.sType )
33658           && ( pNext == rhs.pNext )
33659           && ( flags == rhs.flags )
33660           && ( usage == rhs.usage )
33661           && ( width == rhs.width )
33662           && ( height == rhs.height )
33663           && ( layerCount == rhs.layerCount )
33664           && ( viewFormatCount == rhs.viewFormatCount )
33665           && ( pViewFormats == rhs.pViewFormats );
33666     }
33667 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfoKHR33668     bool operator!=( FramebufferAttachmentImageInfoKHR const& rhs ) const
33669     {
33670       return !operator==( rhs );
33671     }
33672 
33673   private:
33674     using layout::FramebufferAttachmentImageInfoKHR::sType;
33675   };
33676   static_assert( sizeof( FramebufferAttachmentImageInfoKHR ) == sizeof( VkFramebufferAttachmentImageInfoKHR ), "struct and wrapper have different size!" );
33677   static_assert( std::is_standard_layout<FramebufferAttachmentImageInfoKHR>::value, "struct wrapper is not a standard layout!" );
33678 
33679   namespace layout
33680   {
33681     struct FramebufferAttachmentsCreateInfoKHR
33682     {
33683     protected:
FramebufferAttachmentsCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentsCreateInfoKHR33684       FramebufferAttachmentsCreateInfoKHR( uint32_t attachmentImageInfoCount_ = 0,
33685                                            const vk::FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos_ = nullptr )
33686         : attachmentImageInfoCount( attachmentImageInfoCount_ )
33687         , pAttachmentImageInfos( pAttachmentImageInfos_ )
33688       {}
33689 
FramebufferAttachmentsCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentsCreateInfoKHR33690       FramebufferAttachmentsCreateInfoKHR( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
33691       {
33692         *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>(this) = rhs;
33693       }
33694 
operator =VULKAN_HPP_NAMESPACE::layout::FramebufferAttachmentsCreateInfoKHR33695       FramebufferAttachmentsCreateInfoKHR& operator=( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
33696       {
33697         *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>(this) = rhs;
33698         return *this;
33699       }
33700 
33701     public:
33702       vk::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfoKHR;
33703       const void* pNext = nullptr;
33704       uint32_t attachmentImageInfoCount;
33705       const vk::FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos;
33706     };
33707     static_assert( sizeof( FramebufferAttachmentsCreateInfoKHR ) == sizeof( VkFramebufferAttachmentsCreateInfoKHR ), "layout struct and wrapper have different size!" );
33708   }
33709 
33710   struct FramebufferAttachmentsCreateInfoKHR : public layout::FramebufferAttachmentsCreateInfoKHR
33711   {
FramebufferAttachmentsCreateInfoKHRVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33712     FramebufferAttachmentsCreateInfoKHR( uint32_t attachmentImageInfoCount_ = 0,
33713                                          const vk::FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos_ = nullptr )
33714       : layout::FramebufferAttachmentsCreateInfoKHR( attachmentImageInfoCount_, pAttachmentImageInfos_ )
33715     {}
33716 
FramebufferAttachmentsCreateInfoKHRVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33717     FramebufferAttachmentsCreateInfoKHR( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
33718       : layout::FramebufferAttachmentsCreateInfoKHR( rhs )
33719     {}
33720 
operator =VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33721     FramebufferAttachmentsCreateInfoKHR& operator=( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
33722     {
33723       *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>(this) = rhs;
33724       return *this;
33725     }
33726 
setPNextVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33727     FramebufferAttachmentsCreateInfoKHR & setPNext( const void* pNext_ )
33728     {
33729       pNext = pNext_;
33730       return *this;
33731     }
33732 
setAttachmentImageInfoCountVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33733     FramebufferAttachmentsCreateInfoKHR & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ )
33734     {
33735       attachmentImageInfoCount = attachmentImageInfoCount_;
33736       return *this;
33737     }
33738 
setPAttachmentImageInfosVULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33739     FramebufferAttachmentsCreateInfoKHR & setPAttachmentImageInfos( const vk::FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos_ )
33740     {
33741       pAttachmentImageInfos = pAttachmentImageInfos_;
33742       return *this;
33743     }
33744 
operator VkFramebufferAttachmentsCreateInfoKHR const&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33745     operator VkFramebufferAttachmentsCreateInfoKHR const&() const
33746     {
33747       return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfoKHR*>( this );
33748     }
33749 
operator VkFramebufferAttachmentsCreateInfoKHR&VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33750     operator VkFramebufferAttachmentsCreateInfoKHR &()
33751     {
33752       return *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>( this );
33753     }
33754 
operator ==VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33755     bool operator==( FramebufferAttachmentsCreateInfoKHR const& rhs ) const
33756     {
33757       return ( sType == rhs.sType )
33758           && ( pNext == rhs.pNext )
33759           && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
33760           && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
33761     }
33762 
operator !=VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfoKHR33763     bool operator!=( FramebufferAttachmentsCreateInfoKHR const& rhs ) const
33764     {
33765       return !operator==( rhs );
33766     }
33767 
33768   private:
33769     using layout::FramebufferAttachmentsCreateInfoKHR::sType;
33770   };
33771   static_assert( sizeof( FramebufferAttachmentsCreateInfoKHR ) == sizeof( VkFramebufferAttachmentsCreateInfoKHR ), "struct and wrapper have different size!" );
33772   static_assert( std::is_standard_layout<FramebufferAttachmentsCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
33773 
33774   namespace layout
33775   {
33776     struct FramebufferCreateInfo
33777     {
33778     protected:
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::layout::FramebufferCreateInfo33779       FramebufferCreateInfo( vk::FramebufferCreateFlags flags_ = vk::FramebufferCreateFlags(),
33780                              vk::RenderPass renderPass_ = vk::RenderPass(),
33781                              uint32_t attachmentCount_ = 0,
33782                              const vk::ImageView* pAttachments_ = nullptr,
33783                              uint32_t width_ = 0,
33784                              uint32_t height_ = 0,
33785                              uint32_t layers_ = 0 )
33786         : flags( flags_ )
33787         , renderPass( renderPass_ )
33788         , attachmentCount( attachmentCount_ )
33789         , pAttachments( pAttachments_ )
33790         , width( width_ )
33791         , height( height_ )
33792         , layers( layers_ )
33793       {}
33794 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::layout::FramebufferCreateInfo33795       FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs )
33796       {
33797         *reinterpret_cast<VkFramebufferCreateInfo*>(this) = rhs;
33798       }
33799 
operator =VULKAN_HPP_NAMESPACE::layout::FramebufferCreateInfo33800       FramebufferCreateInfo& operator=( VkFramebufferCreateInfo const & rhs )
33801       {
33802         *reinterpret_cast<VkFramebufferCreateInfo*>(this) = rhs;
33803         return *this;
33804       }
33805 
33806     public:
33807       vk::StructureType sType = StructureType::eFramebufferCreateInfo;
33808       const void* pNext = nullptr;
33809       vk::FramebufferCreateFlags flags;
33810       vk::RenderPass renderPass;
33811       uint32_t attachmentCount;
33812       const vk::ImageView* pAttachments;
33813       uint32_t width;
33814       uint32_t height;
33815       uint32_t layers;
33816     };
33817     static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "layout struct and wrapper have different size!" );
33818   }
33819 
33820   struct FramebufferCreateInfo : public layout::FramebufferCreateInfo
33821   {
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33822     FramebufferCreateInfo( vk::FramebufferCreateFlags flags_ = vk::FramebufferCreateFlags(),
33823                            vk::RenderPass renderPass_ = vk::RenderPass(),
33824                            uint32_t attachmentCount_ = 0,
33825                            const vk::ImageView* pAttachments_ = nullptr,
33826                            uint32_t width_ = 0,
33827                            uint32_t height_ = 0,
33828                            uint32_t layers_ = 0 )
33829       : layout::FramebufferCreateInfo( flags_, renderPass_, attachmentCount_, pAttachments_, width_, height_, layers_ )
33830     {}
33831 
FramebufferCreateInfoVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33832     FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs )
33833       : layout::FramebufferCreateInfo( rhs )
33834     {}
33835 
operator =VULKAN_HPP_NAMESPACE::FramebufferCreateInfo33836     FramebufferCreateInfo& operator=( VkFramebufferCreateInfo const & rhs )
33837     {
33838       *reinterpret_cast<VkFramebufferCreateInfo*>(this) = rhs;
33839       return *this;
33840     }
33841 
setPNextVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33842     FramebufferCreateInfo & setPNext( const void* pNext_ )
33843     {
33844       pNext = pNext_;
33845       return *this;
33846     }
33847 
setFlagsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33848     FramebufferCreateInfo & setFlags( vk::FramebufferCreateFlags flags_ )
33849     {
33850       flags = flags_;
33851       return *this;
33852     }
33853 
setRenderPassVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33854     FramebufferCreateInfo & setRenderPass( vk::RenderPass renderPass_ )
33855     {
33856       renderPass = renderPass_;
33857       return *this;
33858     }
33859 
setAttachmentCountVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33860     FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
33861     {
33862       attachmentCount = attachmentCount_;
33863       return *this;
33864     }
33865 
setPAttachmentsVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33866     FramebufferCreateInfo & setPAttachments( const vk::ImageView* pAttachments_ )
33867     {
33868       pAttachments = pAttachments_;
33869       return *this;
33870     }
33871 
setWidthVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33872     FramebufferCreateInfo & setWidth( uint32_t width_ )
33873     {
33874       width = width_;
33875       return *this;
33876     }
33877 
setHeightVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33878     FramebufferCreateInfo & setHeight( uint32_t height_ )
33879     {
33880       height = height_;
33881       return *this;
33882     }
33883 
setLayersVULKAN_HPP_NAMESPACE::FramebufferCreateInfo33884     FramebufferCreateInfo & setLayers( uint32_t layers_ )
33885     {
33886       layers = layers_;
33887       return *this;
33888     }
33889 
operator VkFramebufferCreateInfo const&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo33890     operator VkFramebufferCreateInfo const&() const
33891     {
33892       return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
33893     }
33894 
operator VkFramebufferCreateInfo&VULKAN_HPP_NAMESPACE::FramebufferCreateInfo33895     operator VkFramebufferCreateInfo &()
33896     {
33897       return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
33898     }
33899 
operator ==VULKAN_HPP_NAMESPACE::FramebufferCreateInfo33900     bool operator==( FramebufferCreateInfo const& rhs ) const
33901     {
33902       return ( sType == rhs.sType )
33903           && ( pNext == rhs.pNext )
33904           && ( flags == rhs.flags )
33905           && ( renderPass == rhs.renderPass )
33906           && ( attachmentCount == rhs.attachmentCount )
33907           && ( pAttachments == rhs.pAttachments )
33908           && ( width == rhs.width )
33909           && ( height == rhs.height )
33910           && ( layers == rhs.layers );
33911     }
33912 
operator !=VULKAN_HPP_NAMESPACE::FramebufferCreateInfo33913     bool operator!=( FramebufferCreateInfo const& rhs ) const
33914     {
33915       return !operator==( rhs );
33916     }
33917 
33918   private:
33919     using layout::FramebufferCreateInfo::sType;
33920   };
33921   static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
33922   static_assert( std::is_standard_layout<FramebufferCreateInfo>::value, "struct wrapper is not a standard layout!" );
33923 
33924   namespace layout
33925   {
33926     struct FramebufferMixedSamplesCombinationNV
33927     {
33928     protected:
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::layout::FramebufferMixedSamplesCombinationNV33929       FramebufferMixedSamplesCombinationNV( vk::CoverageReductionModeNV coverageReductionMode_ = vk::CoverageReductionModeNV::eMerge,
33930                                             vk::SampleCountFlagBits rasterizationSamples_ = vk::SampleCountFlagBits::e1,
33931                                             vk::SampleCountFlags depthStencilSamples_ = vk::SampleCountFlags(),
33932                                             vk::SampleCountFlags colorSamples_ = vk::SampleCountFlags() )
33933         : coverageReductionMode( coverageReductionMode_ )
33934         , rasterizationSamples( rasterizationSamples_ )
33935         , depthStencilSamples( depthStencilSamples_ )
33936         , colorSamples( colorSamples_ )
33937       {}
33938 
FramebufferMixedSamplesCombinationNVVULKAN_HPP_NAMESPACE::layout::FramebufferMixedSamplesCombinationNV33939       FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs )
33940       {
33941         *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>(this) = rhs;
33942       }
33943 
operator =VULKAN_HPP_NAMESPACE::layout::FramebufferMixedSamplesCombinationNV33944       FramebufferMixedSamplesCombinationNV& operator=( VkFramebufferMixedSamplesCombinationNV const & rhs )
33945       {
33946         *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>(this) = rhs;
33947         return *this;
33948       }
33949 
33950     public:
33951       vk::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
33952       void* pNext = nullptr;
33953       vk::CoverageReductionModeNV coverageReductionMode;
33954       vk::SampleCountFlagBits rasterizationSamples;
33955       vk::SampleCountFlags depthStencilSamples;
33956       vk::SampleCountFlags colorSamples;
33957     };
33958     static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "layout struct and wrapper have different size!" );
33959   }
33960 
33961   struct FramebufferMixedSamplesCombinationNV : public layout::FramebufferMixedSamplesCombinationNV
33962   {
operator VkFramebufferMixedSamplesCombinationNV const&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV33963     operator VkFramebufferMixedSamplesCombinationNV const&() const
33964     {
33965       return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
33966     }
33967 
operator VkFramebufferMixedSamplesCombinationNV&VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV33968     operator VkFramebufferMixedSamplesCombinationNV &()
33969     {
33970       return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
33971     }
33972 
operator ==VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV33973     bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const
33974     {
33975       return ( sType == rhs.sType )
33976           && ( pNext == rhs.pNext )
33977           && ( coverageReductionMode == rhs.coverageReductionMode )
33978           && ( rasterizationSamples == rhs.rasterizationSamples )
33979           && ( depthStencilSamples == rhs.depthStencilSamples )
33980           && ( colorSamples == rhs.colorSamples );
33981     }
33982 
operator !=VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV33983     bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const
33984     {
33985       return !operator==( rhs );
33986     }
33987 
33988   private:
33989     using layout::FramebufferMixedSamplesCombinationNV::sType;
33990   };
33991   static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
33992   static_assert( std::is_standard_layout<FramebufferMixedSamplesCombinationNV>::value, "struct wrapper is not a standard layout!" );
33993 
33994   struct VertexInputBindingDescription
33995   {
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription33996     VertexInputBindingDescription( uint32_t binding_ = 0,
33997                                    uint32_t stride_ = 0,
33998                                    vk::VertexInputRate inputRate_ = vk::VertexInputRate::eVertex )
33999         : binding( binding_ )
34000         , stride( stride_ )
34001         , inputRate( inputRate_ )
34002     {}
34003 
VertexInputBindingDescriptionVULKAN_HPP_NAMESPACE::VertexInputBindingDescription34004     VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs )
34005     {
34006       *reinterpret_cast<VkVertexInputBindingDescription*>(this) = rhs;
34007     }
34008 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDescription34009     VertexInputBindingDescription& operator=( VkVertexInputBindingDescription const & rhs )
34010     {
34011       *reinterpret_cast<VkVertexInputBindingDescription*>(this) = rhs;
34012       return *this;
34013     }
34014 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDescription34015     VertexInputBindingDescription & setBinding( uint32_t binding_ )
34016     {
34017       binding = binding_;
34018       return *this;
34019     }
34020 
setStrideVULKAN_HPP_NAMESPACE::VertexInputBindingDescription34021     VertexInputBindingDescription & setStride( uint32_t stride_ )
34022     {
34023       stride = stride_;
34024       return *this;
34025     }
34026 
setInputRateVULKAN_HPP_NAMESPACE::VertexInputBindingDescription34027     VertexInputBindingDescription & setInputRate( vk::VertexInputRate inputRate_ )
34028     {
34029       inputRate = inputRate_;
34030       return *this;
34031     }
34032 
operator VkVertexInputBindingDescription const&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription34033     operator VkVertexInputBindingDescription const&() const
34034     {
34035       return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
34036     }
34037 
operator VkVertexInputBindingDescription&VULKAN_HPP_NAMESPACE::VertexInputBindingDescription34038     operator VkVertexInputBindingDescription &()
34039     {
34040       return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
34041     }
34042 
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDescription34043     bool operator==( VertexInputBindingDescription const& rhs ) const
34044     {
34045       return ( binding == rhs.binding )
34046           && ( stride == rhs.stride )
34047           && ( inputRate == rhs.inputRate );
34048     }
34049 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDescription34050     bool operator!=( VertexInputBindingDescription const& rhs ) const
34051     {
34052       return !operator==( rhs );
34053     }
34054 
34055   public:
34056     uint32_t binding;
34057     uint32_t stride;
34058     vk::VertexInputRate inputRate;
34059   };
34060   static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
34061   static_assert( std::is_standard_layout<VertexInputBindingDescription>::value, "struct wrapper is not a standard layout!" );
34062 
34063   struct VertexInputAttributeDescription
34064   {
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34065     VertexInputAttributeDescription( uint32_t location_ = 0,
34066                                      uint32_t binding_ = 0,
34067                                      vk::Format format_ = vk::Format::eUndefined,
34068                                      uint32_t offset_ = 0 )
34069         : location( location_ )
34070         , binding( binding_ )
34071         , format( format_ )
34072         , offset( offset_ )
34073     {}
34074 
VertexInputAttributeDescriptionVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34075     VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs )
34076     {
34077       *reinterpret_cast<VkVertexInputAttributeDescription*>(this) = rhs;
34078     }
34079 
operator =VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34080     VertexInputAttributeDescription& operator=( VkVertexInputAttributeDescription const & rhs )
34081     {
34082       *reinterpret_cast<VkVertexInputAttributeDescription*>(this) = rhs;
34083       return *this;
34084     }
34085 
setLocationVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34086     VertexInputAttributeDescription & setLocation( uint32_t location_ )
34087     {
34088       location = location_;
34089       return *this;
34090     }
34091 
setBindingVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34092     VertexInputAttributeDescription & setBinding( uint32_t binding_ )
34093     {
34094       binding = binding_;
34095       return *this;
34096     }
34097 
setFormatVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34098     VertexInputAttributeDescription & setFormat( vk::Format format_ )
34099     {
34100       format = format_;
34101       return *this;
34102     }
34103 
setOffsetVULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34104     VertexInputAttributeDescription & setOffset( uint32_t offset_ )
34105     {
34106       offset = offset_;
34107       return *this;
34108     }
34109 
operator VkVertexInputAttributeDescription const&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34110     operator VkVertexInputAttributeDescription const&() const
34111     {
34112       return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
34113     }
34114 
operator VkVertexInputAttributeDescription&VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34115     operator VkVertexInputAttributeDescription &()
34116     {
34117       return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
34118     }
34119 
operator ==VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34120     bool operator==( VertexInputAttributeDescription const& rhs ) const
34121     {
34122       return ( location == rhs.location )
34123           && ( binding == rhs.binding )
34124           && ( format == rhs.format )
34125           && ( offset == rhs.offset );
34126     }
34127 
operator !=VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription34128     bool operator!=( VertexInputAttributeDescription const& rhs ) const
34129     {
34130       return !operator==( rhs );
34131     }
34132 
34133   public:
34134     uint32_t location;
34135     uint32_t binding;
34136     vk::Format format;
34137     uint32_t offset;
34138   };
34139   static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
34140   static_assert( std::is_standard_layout<VertexInputAttributeDescription>::value, "struct wrapper is not a standard layout!" );
34141 
34142   namespace layout
34143   {
34144     struct PipelineVertexInputStateCreateInfo
34145     {
34146     protected:
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineVertexInputStateCreateInfo34147       PipelineVertexInputStateCreateInfo( vk::PipelineVertexInputStateCreateFlags flags_ = vk::PipelineVertexInputStateCreateFlags(),
34148                                           uint32_t vertexBindingDescriptionCount_ = 0,
34149                                           const vk::VertexInputBindingDescription* pVertexBindingDescriptions_ = nullptr,
34150                                           uint32_t vertexAttributeDescriptionCount_ = 0,
34151                                           const vk::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = nullptr )
34152         : flags( flags_ )
34153         , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
34154         , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
34155         , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
34156         , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
34157       {}
34158 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineVertexInputStateCreateInfo34159       PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs )
34160       {
34161         *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this) = rhs;
34162       }
34163 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineVertexInputStateCreateInfo34164       PipelineVertexInputStateCreateInfo& operator=( VkPipelineVertexInputStateCreateInfo const & rhs )
34165       {
34166         *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this) = rhs;
34167         return *this;
34168       }
34169 
34170     public:
34171       vk::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
34172       const void* pNext = nullptr;
34173       vk::PipelineVertexInputStateCreateFlags flags;
34174       uint32_t vertexBindingDescriptionCount;
34175       const vk::VertexInputBindingDescription* pVertexBindingDescriptions;
34176       uint32_t vertexAttributeDescriptionCount;
34177       const vk::VertexInputAttributeDescription* pVertexAttributeDescriptions;
34178     };
34179     static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "layout struct and wrapper have different size!" );
34180   }
34181 
34182   struct PipelineVertexInputStateCreateInfo : public layout::PipelineVertexInputStateCreateInfo
34183   {
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34184     PipelineVertexInputStateCreateInfo( vk::PipelineVertexInputStateCreateFlags flags_ = vk::PipelineVertexInputStateCreateFlags(),
34185                                         uint32_t vertexBindingDescriptionCount_ = 0,
34186                                         const vk::VertexInputBindingDescription* pVertexBindingDescriptions_ = nullptr,
34187                                         uint32_t vertexAttributeDescriptionCount_ = 0,
34188                                         const vk::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = nullptr )
34189       : layout::PipelineVertexInputStateCreateInfo( flags_, vertexBindingDescriptionCount_, pVertexBindingDescriptions_, vertexAttributeDescriptionCount_, pVertexAttributeDescriptions_ )
34190     {}
34191 
PipelineVertexInputStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34192     PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs )
34193       : layout::PipelineVertexInputStateCreateInfo( rhs )
34194     {}
34195 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34196     PipelineVertexInputStateCreateInfo& operator=( VkPipelineVertexInputStateCreateInfo const & rhs )
34197     {
34198       *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this) = rhs;
34199       return *this;
34200     }
34201 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34202     PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ )
34203     {
34204       pNext = pNext_;
34205       return *this;
34206     }
34207 
setFlagsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34208     PipelineVertexInputStateCreateInfo & setFlags( vk::PipelineVertexInputStateCreateFlags flags_ )
34209     {
34210       flags = flags_;
34211       return *this;
34212     }
34213 
setVertexBindingDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34214     PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ )
34215     {
34216       vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
34217       return *this;
34218     }
34219 
setPVertexBindingDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34220     PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const vk::VertexInputBindingDescription* pVertexBindingDescriptions_ )
34221     {
34222       pVertexBindingDescriptions = pVertexBindingDescriptions_;
34223       return *this;
34224     }
34225 
setVertexAttributeDescriptionCountVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34226     PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ )
34227     {
34228       vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
34229       return *this;
34230     }
34231 
setPVertexAttributeDescriptionsVULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34232     PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const vk::VertexInputAttributeDescription* pVertexAttributeDescriptions_ )
34233     {
34234       pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
34235       return *this;
34236     }
34237 
operator VkPipelineVertexInputStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34238     operator VkPipelineVertexInputStateCreateInfo const&() const
34239     {
34240       return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
34241     }
34242 
operator VkPipelineVertexInputStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34243     operator VkPipelineVertexInputStateCreateInfo &()
34244     {
34245       return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
34246     }
34247 
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34248     bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const
34249     {
34250       return ( sType == rhs.sType )
34251           && ( pNext == rhs.pNext )
34252           && ( flags == rhs.flags )
34253           && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
34254           && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
34255           && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
34256           && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
34257     }
34258 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo34259     bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const
34260     {
34261       return !operator==( rhs );
34262     }
34263 
34264   private:
34265     using layout::PipelineVertexInputStateCreateInfo::sType;
34266   };
34267   static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
34268   static_assert( std::is_standard_layout<PipelineVertexInputStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
34269 
34270   namespace layout
34271   {
34272     struct PipelineInputAssemblyStateCreateInfo
34273     {
34274     protected:
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineInputAssemblyStateCreateInfo34275       PipelineInputAssemblyStateCreateInfo( vk::PipelineInputAssemblyStateCreateFlags flags_ = vk::PipelineInputAssemblyStateCreateFlags(),
34276                                             vk::PrimitiveTopology topology_ = vk::PrimitiveTopology::ePointList,
34277                                             vk::Bool32 primitiveRestartEnable_ = 0 )
34278         : flags( flags_ )
34279         , topology( topology_ )
34280         , primitiveRestartEnable( primitiveRestartEnable_ )
34281       {}
34282 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineInputAssemblyStateCreateInfo34283       PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs )
34284       {
34285         *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this) = rhs;
34286       }
34287 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineInputAssemblyStateCreateInfo34288       PipelineInputAssemblyStateCreateInfo& operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs )
34289       {
34290         *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this) = rhs;
34291         return *this;
34292       }
34293 
34294     public:
34295       vk::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
34296       const void* pNext = nullptr;
34297       vk::PipelineInputAssemblyStateCreateFlags flags;
34298       vk::PrimitiveTopology topology;
34299       vk::Bool32 primitiveRestartEnable;
34300     };
34301     static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "layout struct and wrapper have different size!" );
34302   }
34303 
34304   struct PipelineInputAssemblyStateCreateInfo : public layout::PipelineInputAssemblyStateCreateInfo
34305   {
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34306     PipelineInputAssemblyStateCreateInfo( vk::PipelineInputAssemblyStateCreateFlags flags_ = vk::PipelineInputAssemblyStateCreateFlags(),
34307                                           vk::PrimitiveTopology topology_ = vk::PrimitiveTopology::ePointList,
34308                                           vk::Bool32 primitiveRestartEnable_ = 0 )
34309       : layout::PipelineInputAssemblyStateCreateInfo( flags_, topology_, primitiveRestartEnable_ )
34310     {}
34311 
PipelineInputAssemblyStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34312     PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs )
34313       : layout::PipelineInputAssemblyStateCreateInfo( rhs )
34314     {}
34315 
operator =VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34316     PipelineInputAssemblyStateCreateInfo& operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs )
34317     {
34318       *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this) = rhs;
34319       return *this;
34320     }
34321 
setPNextVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34322     PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ )
34323     {
34324       pNext = pNext_;
34325       return *this;
34326     }
34327 
setFlagsVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34328     PipelineInputAssemblyStateCreateInfo & setFlags( vk::PipelineInputAssemblyStateCreateFlags flags_ )
34329     {
34330       flags = flags_;
34331       return *this;
34332     }
34333 
setTopologyVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34334     PipelineInputAssemblyStateCreateInfo & setTopology( vk::PrimitiveTopology topology_ )
34335     {
34336       topology = topology_;
34337       return *this;
34338     }
34339 
setPrimitiveRestartEnableVULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34340     PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( vk::Bool32 primitiveRestartEnable_ )
34341     {
34342       primitiveRestartEnable = primitiveRestartEnable_;
34343       return *this;
34344     }
34345 
operator VkPipelineInputAssemblyStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34346     operator VkPipelineInputAssemblyStateCreateInfo const&() const
34347     {
34348       return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
34349     }
34350 
operator VkPipelineInputAssemblyStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34351     operator VkPipelineInputAssemblyStateCreateInfo &()
34352     {
34353       return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
34354     }
34355 
operator ==VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34356     bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const
34357     {
34358       return ( sType == rhs.sType )
34359           && ( pNext == rhs.pNext )
34360           && ( flags == rhs.flags )
34361           && ( topology == rhs.topology )
34362           && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
34363     }
34364 
operator !=VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo34365     bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const
34366     {
34367       return !operator==( rhs );
34368     }
34369 
34370   private:
34371     using layout::PipelineInputAssemblyStateCreateInfo::sType;
34372   };
34373   static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
34374   static_assert( std::is_standard_layout<PipelineInputAssemblyStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
34375 
34376   namespace layout
34377   {
34378     struct PipelineTessellationStateCreateInfo
34379     {
34380     protected:
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineTessellationStateCreateInfo34381       PipelineTessellationStateCreateInfo( vk::PipelineTessellationStateCreateFlags flags_ = vk::PipelineTessellationStateCreateFlags(),
34382                                            uint32_t patchControlPoints_ = 0 )
34383         : flags( flags_ )
34384         , patchControlPoints( patchControlPoints_ )
34385       {}
34386 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineTessellationStateCreateInfo34387       PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs )
34388       {
34389         *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this) = rhs;
34390       }
34391 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineTessellationStateCreateInfo34392       PipelineTessellationStateCreateInfo& operator=( VkPipelineTessellationStateCreateInfo const & rhs )
34393       {
34394         *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this) = rhs;
34395         return *this;
34396       }
34397 
34398     public:
34399       vk::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
34400       const void* pNext = nullptr;
34401       vk::PipelineTessellationStateCreateFlags flags;
34402       uint32_t patchControlPoints;
34403     };
34404     static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "layout struct and wrapper have different size!" );
34405   }
34406 
34407   struct PipelineTessellationStateCreateInfo : public layout::PipelineTessellationStateCreateInfo
34408   {
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34409     PipelineTessellationStateCreateInfo( vk::PipelineTessellationStateCreateFlags flags_ = vk::PipelineTessellationStateCreateFlags(),
34410                                          uint32_t patchControlPoints_ = 0 )
34411       : layout::PipelineTessellationStateCreateInfo( flags_, patchControlPoints_ )
34412     {}
34413 
PipelineTessellationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34414     PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs )
34415       : layout::PipelineTessellationStateCreateInfo( rhs )
34416     {}
34417 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34418     PipelineTessellationStateCreateInfo& operator=( VkPipelineTessellationStateCreateInfo const & rhs )
34419     {
34420       *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this) = rhs;
34421       return *this;
34422     }
34423 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34424     PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ )
34425     {
34426       pNext = pNext_;
34427       return *this;
34428     }
34429 
setFlagsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34430     PipelineTessellationStateCreateInfo & setFlags( vk::PipelineTessellationStateCreateFlags flags_ )
34431     {
34432       flags = flags_;
34433       return *this;
34434     }
34435 
setPatchControlPointsVULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34436     PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ )
34437     {
34438       patchControlPoints = patchControlPoints_;
34439       return *this;
34440     }
34441 
operator VkPipelineTessellationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34442     operator VkPipelineTessellationStateCreateInfo const&() const
34443     {
34444       return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
34445     }
34446 
operator VkPipelineTessellationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34447     operator VkPipelineTessellationStateCreateInfo &()
34448     {
34449       return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
34450     }
34451 
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34452     bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const
34453     {
34454       return ( sType == rhs.sType )
34455           && ( pNext == rhs.pNext )
34456           && ( flags == rhs.flags )
34457           && ( patchControlPoints == rhs.patchControlPoints );
34458     }
34459 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo34460     bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const
34461     {
34462       return !operator==( rhs );
34463     }
34464 
34465   private:
34466     using layout::PipelineTessellationStateCreateInfo::sType;
34467   };
34468   static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
34469   static_assert( std::is_standard_layout<PipelineTessellationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
34470 
34471   struct Viewport
34472   {
ViewportVULKAN_HPP_NAMESPACE::Viewport34473     Viewport( float x_ = 0,
34474               float y_ = 0,
34475               float width_ = 0,
34476               float height_ = 0,
34477               float minDepth_ = 0,
34478               float maxDepth_ = 0 )
34479         : x( x_ )
34480         , y( y_ )
34481         , width( width_ )
34482         , height( height_ )
34483         , minDepth( minDepth_ )
34484         , maxDepth( maxDepth_ )
34485     {}
34486 
ViewportVULKAN_HPP_NAMESPACE::Viewport34487     Viewport( VkViewport const & rhs )
34488     {
34489       *reinterpret_cast<VkViewport*>(this) = rhs;
34490     }
34491 
operator =VULKAN_HPP_NAMESPACE::Viewport34492     Viewport& operator=( VkViewport const & rhs )
34493     {
34494       *reinterpret_cast<VkViewport*>(this) = rhs;
34495       return *this;
34496     }
34497 
setXVULKAN_HPP_NAMESPACE::Viewport34498     Viewport & setX( float x_ )
34499     {
34500       x = x_;
34501       return *this;
34502     }
34503 
setYVULKAN_HPP_NAMESPACE::Viewport34504     Viewport & setY( float y_ )
34505     {
34506       y = y_;
34507       return *this;
34508     }
34509 
setWidthVULKAN_HPP_NAMESPACE::Viewport34510     Viewport & setWidth( float width_ )
34511     {
34512       width = width_;
34513       return *this;
34514     }
34515 
setHeightVULKAN_HPP_NAMESPACE::Viewport34516     Viewport & setHeight( float height_ )
34517     {
34518       height = height_;
34519       return *this;
34520     }
34521 
setMinDepthVULKAN_HPP_NAMESPACE::Viewport34522     Viewport & setMinDepth( float minDepth_ )
34523     {
34524       minDepth = minDepth_;
34525       return *this;
34526     }
34527 
setMaxDepthVULKAN_HPP_NAMESPACE::Viewport34528     Viewport & setMaxDepth( float maxDepth_ )
34529     {
34530       maxDepth = maxDepth_;
34531       return *this;
34532     }
34533 
operator VkViewport const&VULKAN_HPP_NAMESPACE::Viewport34534     operator VkViewport const&() const
34535     {
34536       return *reinterpret_cast<const VkViewport*>( this );
34537     }
34538 
operator VkViewport&VULKAN_HPP_NAMESPACE::Viewport34539     operator VkViewport &()
34540     {
34541       return *reinterpret_cast<VkViewport*>( this );
34542     }
34543 
operator ==VULKAN_HPP_NAMESPACE::Viewport34544     bool operator==( Viewport const& rhs ) const
34545     {
34546       return ( x == rhs.x )
34547           && ( y == rhs.y )
34548           && ( width == rhs.width )
34549           && ( height == rhs.height )
34550           && ( minDepth == rhs.minDepth )
34551           && ( maxDepth == rhs.maxDepth );
34552     }
34553 
operator !=VULKAN_HPP_NAMESPACE::Viewport34554     bool operator!=( Viewport const& rhs ) const
34555     {
34556       return !operator==( rhs );
34557     }
34558 
34559   public:
34560     float x;
34561     float y;
34562     float width;
34563     float height;
34564     float minDepth;
34565     float maxDepth;
34566   };
34567   static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
34568   static_assert( std::is_standard_layout<Viewport>::value, "struct wrapper is not a standard layout!" );
34569 
34570   namespace layout
34571   {
34572     struct PipelineViewportStateCreateInfo
34573     {
34574     protected:
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineViewportStateCreateInfo34575       PipelineViewportStateCreateInfo( vk::PipelineViewportStateCreateFlags flags_ = vk::PipelineViewportStateCreateFlags(),
34576                                        uint32_t viewportCount_ = 0,
34577                                        const vk::Viewport* pViewports_ = nullptr,
34578                                        uint32_t scissorCount_ = 0,
34579                                        const vk::Rect2D* pScissors_ = nullptr )
34580         : flags( flags_ )
34581         , viewportCount( viewportCount_ )
34582         , pViewports( pViewports_ )
34583         , scissorCount( scissorCount_ )
34584         , pScissors( pScissors_ )
34585       {}
34586 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineViewportStateCreateInfo34587       PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs )
34588       {
34589         *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this) = rhs;
34590       }
34591 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportStateCreateInfo34592       PipelineViewportStateCreateInfo& operator=( VkPipelineViewportStateCreateInfo const & rhs )
34593       {
34594         *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this) = rhs;
34595         return *this;
34596       }
34597 
34598     public:
34599       vk::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
34600       const void* pNext = nullptr;
34601       vk::PipelineViewportStateCreateFlags flags;
34602       uint32_t viewportCount;
34603       const vk::Viewport* pViewports;
34604       uint32_t scissorCount;
34605       const vk::Rect2D* pScissors;
34606     };
34607     static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "layout struct and wrapper have different size!" );
34608   }
34609 
34610   struct PipelineViewportStateCreateInfo : public layout::PipelineViewportStateCreateInfo
34611   {
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34612     PipelineViewportStateCreateInfo( vk::PipelineViewportStateCreateFlags flags_ = vk::PipelineViewportStateCreateFlags(),
34613                                      uint32_t viewportCount_ = 0,
34614                                      const vk::Viewport* pViewports_ = nullptr,
34615                                      uint32_t scissorCount_ = 0,
34616                                      const vk::Rect2D* pScissors_ = nullptr )
34617       : layout::PipelineViewportStateCreateInfo( flags_, viewportCount_, pViewports_, scissorCount_, pScissors_ )
34618     {}
34619 
PipelineViewportStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34620     PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs )
34621       : layout::PipelineViewportStateCreateInfo( rhs )
34622     {}
34623 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34624     PipelineViewportStateCreateInfo& operator=( VkPipelineViewportStateCreateInfo const & rhs )
34625     {
34626       *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this) = rhs;
34627       return *this;
34628     }
34629 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34630     PipelineViewportStateCreateInfo & setPNext( const void* pNext_ )
34631     {
34632       pNext = pNext_;
34633       return *this;
34634     }
34635 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34636     PipelineViewportStateCreateInfo & setFlags( vk::PipelineViewportStateCreateFlags flags_ )
34637     {
34638       flags = flags_;
34639       return *this;
34640     }
34641 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34642     PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ )
34643     {
34644       viewportCount = viewportCount_;
34645       return *this;
34646     }
34647 
setPViewportsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34648     PipelineViewportStateCreateInfo & setPViewports( const vk::Viewport* pViewports_ )
34649     {
34650       pViewports = pViewports_;
34651       return *this;
34652     }
34653 
setScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34654     PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ )
34655     {
34656       scissorCount = scissorCount_;
34657       return *this;
34658     }
34659 
setPScissorsVULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34660     PipelineViewportStateCreateInfo & setPScissors( const vk::Rect2D* pScissors_ )
34661     {
34662       pScissors = pScissors_;
34663       return *this;
34664     }
34665 
operator VkPipelineViewportStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34666     operator VkPipelineViewportStateCreateInfo const&() const
34667     {
34668       return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
34669     }
34670 
operator VkPipelineViewportStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34671     operator VkPipelineViewportStateCreateInfo &()
34672     {
34673       return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
34674     }
34675 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34676     bool operator==( PipelineViewportStateCreateInfo const& rhs ) const
34677     {
34678       return ( sType == rhs.sType )
34679           && ( pNext == rhs.pNext )
34680           && ( flags == rhs.flags )
34681           && ( viewportCount == rhs.viewportCount )
34682           && ( pViewports == rhs.pViewports )
34683           && ( scissorCount == rhs.scissorCount )
34684           && ( pScissors == rhs.pScissors );
34685     }
34686 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo34687     bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const
34688     {
34689       return !operator==( rhs );
34690     }
34691 
34692   private:
34693     using layout::PipelineViewportStateCreateInfo::sType;
34694   };
34695   static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
34696   static_assert( std::is_standard_layout<PipelineViewportStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
34697 
34698   namespace layout
34699   {
34700     struct PipelineRasterizationStateCreateInfo
34701     {
34702     protected:
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateCreateInfo34703       PipelineRasterizationStateCreateInfo( vk::PipelineRasterizationStateCreateFlags flags_ = vk::PipelineRasterizationStateCreateFlags(),
34704                                             vk::Bool32 depthClampEnable_ = 0,
34705                                             vk::Bool32 rasterizerDiscardEnable_ = 0,
34706                                             vk::PolygonMode polygonMode_ = vk::PolygonMode::eFill,
34707                                             vk::CullModeFlags cullMode_ = vk::CullModeFlags(),
34708                                             vk::FrontFace frontFace_ = vk::FrontFace::eCounterClockwise,
34709                                             vk::Bool32 depthBiasEnable_ = 0,
34710                                             float depthBiasConstantFactor_ = 0,
34711                                             float depthBiasClamp_ = 0,
34712                                             float depthBiasSlopeFactor_ = 0,
34713                                             float lineWidth_ = 0 )
34714         : flags( flags_ )
34715         , depthClampEnable( depthClampEnable_ )
34716         , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
34717         , polygonMode( polygonMode_ )
34718         , cullMode( cullMode_ )
34719         , frontFace( frontFace_ )
34720         , depthBiasEnable( depthBiasEnable_ )
34721         , depthBiasConstantFactor( depthBiasConstantFactor_ )
34722         , depthBiasClamp( depthBiasClamp_ )
34723         , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
34724         , lineWidth( lineWidth_ )
34725       {}
34726 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateCreateInfo34727       PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs )
34728       {
34729         *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this) = rhs;
34730       }
34731 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateCreateInfo34732       PipelineRasterizationStateCreateInfo& operator=( VkPipelineRasterizationStateCreateInfo const & rhs )
34733       {
34734         *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this) = rhs;
34735         return *this;
34736       }
34737 
34738     public:
34739       vk::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
34740       const void* pNext = nullptr;
34741       vk::PipelineRasterizationStateCreateFlags flags;
34742       vk::Bool32 depthClampEnable;
34743       vk::Bool32 rasterizerDiscardEnable;
34744       vk::PolygonMode polygonMode;
34745       vk::CullModeFlags cullMode;
34746       vk::FrontFace frontFace;
34747       vk::Bool32 depthBiasEnable;
34748       float depthBiasConstantFactor;
34749       float depthBiasClamp;
34750       float depthBiasSlopeFactor;
34751       float lineWidth;
34752     };
34753     static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "layout struct and wrapper have different size!" );
34754   }
34755 
34756   struct PipelineRasterizationStateCreateInfo : public layout::PipelineRasterizationStateCreateInfo
34757   {
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34758     PipelineRasterizationStateCreateInfo( vk::PipelineRasterizationStateCreateFlags flags_ = vk::PipelineRasterizationStateCreateFlags(),
34759                                           vk::Bool32 depthClampEnable_ = 0,
34760                                           vk::Bool32 rasterizerDiscardEnable_ = 0,
34761                                           vk::PolygonMode polygonMode_ = vk::PolygonMode::eFill,
34762                                           vk::CullModeFlags cullMode_ = vk::CullModeFlags(),
34763                                           vk::FrontFace frontFace_ = vk::FrontFace::eCounterClockwise,
34764                                           vk::Bool32 depthBiasEnable_ = 0,
34765                                           float depthBiasConstantFactor_ = 0,
34766                                           float depthBiasClamp_ = 0,
34767                                           float depthBiasSlopeFactor_ = 0,
34768                                           float lineWidth_ = 0 )
34769       : layout::PipelineRasterizationStateCreateInfo( flags_, depthClampEnable_, rasterizerDiscardEnable_, polygonMode_, cullMode_, frontFace_, depthBiasEnable_, depthBiasConstantFactor_, depthBiasClamp_, depthBiasSlopeFactor_, lineWidth_ )
34770     {}
34771 
PipelineRasterizationStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34772     PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs )
34773       : layout::PipelineRasterizationStateCreateInfo( rhs )
34774     {}
34775 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34776     PipelineRasterizationStateCreateInfo& operator=( VkPipelineRasterizationStateCreateInfo const & rhs )
34777     {
34778       *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this) = rhs;
34779       return *this;
34780     }
34781 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34782     PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ )
34783     {
34784       pNext = pNext_;
34785       return *this;
34786     }
34787 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34788     PipelineRasterizationStateCreateInfo & setFlags( vk::PipelineRasterizationStateCreateFlags flags_ )
34789     {
34790       flags = flags_;
34791       return *this;
34792     }
34793 
setDepthClampEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34794     PipelineRasterizationStateCreateInfo & setDepthClampEnable( vk::Bool32 depthClampEnable_ )
34795     {
34796       depthClampEnable = depthClampEnable_;
34797       return *this;
34798     }
34799 
setRasterizerDiscardEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34800     PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( vk::Bool32 rasterizerDiscardEnable_ )
34801     {
34802       rasterizerDiscardEnable = rasterizerDiscardEnable_;
34803       return *this;
34804     }
34805 
setPolygonModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34806     PipelineRasterizationStateCreateInfo & setPolygonMode( vk::PolygonMode polygonMode_ )
34807     {
34808       polygonMode = polygonMode_;
34809       return *this;
34810     }
34811 
setCullModeVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34812     PipelineRasterizationStateCreateInfo & setCullMode( vk::CullModeFlags cullMode_ )
34813     {
34814       cullMode = cullMode_;
34815       return *this;
34816     }
34817 
setFrontFaceVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34818     PipelineRasterizationStateCreateInfo & setFrontFace( vk::FrontFace frontFace_ )
34819     {
34820       frontFace = frontFace_;
34821       return *this;
34822     }
34823 
setDepthBiasEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34824     PipelineRasterizationStateCreateInfo & setDepthBiasEnable( vk::Bool32 depthBiasEnable_ )
34825     {
34826       depthBiasEnable = depthBiasEnable_;
34827       return *this;
34828     }
34829 
setDepthBiasConstantFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34830     PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ )
34831     {
34832       depthBiasConstantFactor = depthBiasConstantFactor_;
34833       return *this;
34834     }
34835 
setDepthBiasClampVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34836     PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ )
34837     {
34838       depthBiasClamp = depthBiasClamp_;
34839       return *this;
34840     }
34841 
setDepthBiasSlopeFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34842     PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ )
34843     {
34844       depthBiasSlopeFactor = depthBiasSlopeFactor_;
34845       return *this;
34846     }
34847 
setLineWidthVULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34848     PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ )
34849     {
34850       lineWidth = lineWidth_;
34851       return *this;
34852     }
34853 
operator VkPipelineRasterizationStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34854     operator VkPipelineRasterizationStateCreateInfo const&() const
34855     {
34856       return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
34857     }
34858 
operator VkPipelineRasterizationStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34859     operator VkPipelineRasterizationStateCreateInfo &()
34860     {
34861       return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
34862     }
34863 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34864     bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const
34865     {
34866       return ( sType == rhs.sType )
34867           && ( pNext == rhs.pNext )
34868           && ( flags == rhs.flags )
34869           && ( depthClampEnable == rhs.depthClampEnable )
34870           && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
34871           && ( polygonMode == rhs.polygonMode )
34872           && ( cullMode == rhs.cullMode )
34873           && ( frontFace == rhs.frontFace )
34874           && ( depthBiasEnable == rhs.depthBiasEnable )
34875           && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
34876           && ( depthBiasClamp == rhs.depthBiasClamp )
34877           && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
34878           && ( lineWidth == rhs.lineWidth );
34879     }
34880 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo34881     bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const
34882     {
34883       return !operator==( rhs );
34884     }
34885 
34886   private:
34887     using layout::PipelineRasterizationStateCreateInfo::sType;
34888   };
34889   static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
34890   static_assert( std::is_standard_layout<PipelineRasterizationStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
34891 
34892   namespace layout
34893   {
34894     struct PipelineMultisampleStateCreateInfo
34895     {
34896     protected:
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineMultisampleStateCreateInfo34897       PipelineMultisampleStateCreateInfo( vk::PipelineMultisampleStateCreateFlags flags_ = vk::PipelineMultisampleStateCreateFlags(),
34898                                           vk::SampleCountFlagBits rasterizationSamples_ = vk::SampleCountFlagBits::e1,
34899                                           vk::Bool32 sampleShadingEnable_ = 0,
34900                                           float minSampleShading_ = 0,
34901                                           const vk::SampleMask* pSampleMask_ = nullptr,
34902                                           vk::Bool32 alphaToCoverageEnable_ = 0,
34903                                           vk::Bool32 alphaToOneEnable_ = 0 )
34904         : flags( flags_ )
34905         , rasterizationSamples( rasterizationSamples_ )
34906         , sampleShadingEnable( sampleShadingEnable_ )
34907         , minSampleShading( minSampleShading_ )
34908         , pSampleMask( pSampleMask_ )
34909         , alphaToCoverageEnable( alphaToCoverageEnable_ )
34910         , alphaToOneEnable( alphaToOneEnable_ )
34911       {}
34912 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineMultisampleStateCreateInfo34913       PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs )
34914       {
34915         *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this) = rhs;
34916       }
34917 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineMultisampleStateCreateInfo34918       PipelineMultisampleStateCreateInfo& operator=( VkPipelineMultisampleStateCreateInfo const & rhs )
34919       {
34920         *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this) = rhs;
34921         return *this;
34922       }
34923 
34924     public:
34925       vk::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
34926       const void* pNext = nullptr;
34927       vk::PipelineMultisampleStateCreateFlags flags;
34928       vk::SampleCountFlagBits rasterizationSamples;
34929       vk::Bool32 sampleShadingEnable;
34930       float minSampleShading;
34931       const vk::SampleMask* pSampleMask;
34932       vk::Bool32 alphaToCoverageEnable;
34933       vk::Bool32 alphaToOneEnable;
34934     };
34935     static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "layout struct and wrapper have different size!" );
34936   }
34937 
34938   struct PipelineMultisampleStateCreateInfo : public layout::PipelineMultisampleStateCreateInfo
34939   {
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34940     PipelineMultisampleStateCreateInfo( vk::PipelineMultisampleStateCreateFlags flags_ = vk::PipelineMultisampleStateCreateFlags(),
34941                                         vk::SampleCountFlagBits rasterizationSamples_ = vk::SampleCountFlagBits::e1,
34942                                         vk::Bool32 sampleShadingEnable_ = 0,
34943                                         float minSampleShading_ = 0,
34944                                         const vk::SampleMask* pSampleMask_ = nullptr,
34945                                         vk::Bool32 alphaToCoverageEnable_ = 0,
34946                                         vk::Bool32 alphaToOneEnable_ = 0 )
34947       : layout::PipelineMultisampleStateCreateInfo( flags_, rasterizationSamples_, sampleShadingEnable_, minSampleShading_, pSampleMask_, alphaToCoverageEnable_, alphaToOneEnable_ )
34948     {}
34949 
PipelineMultisampleStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34950     PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs )
34951       : layout::PipelineMultisampleStateCreateInfo( rhs )
34952     {}
34953 
operator =VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34954     PipelineMultisampleStateCreateInfo& operator=( VkPipelineMultisampleStateCreateInfo const & rhs )
34955     {
34956       *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this) = rhs;
34957       return *this;
34958     }
34959 
setPNextVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34960     PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ )
34961     {
34962       pNext = pNext_;
34963       return *this;
34964     }
34965 
setFlagsVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34966     PipelineMultisampleStateCreateInfo & setFlags( vk::PipelineMultisampleStateCreateFlags flags_ )
34967     {
34968       flags = flags_;
34969       return *this;
34970     }
34971 
setRasterizationSamplesVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34972     PipelineMultisampleStateCreateInfo & setRasterizationSamples( vk::SampleCountFlagBits rasterizationSamples_ )
34973     {
34974       rasterizationSamples = rasterizationSamples_;
34975       return *this;
34976     }
34977 
setSampleShadingEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34978     PipelineMultisampleStateCreateInfo & setSampleShadingEnable( vk::Bool32 sampleShadingEnable_ )
34979     {
34980       sampleShadingEnable = sampleShadingEnable_;
34981       return *this;
34982     }
34983 
setMinSampleShadingVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34984     PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ )
34985     {
34986       minSampleShading = minSampleShading_;
34987       return *this;
34988     }
34989 
setPSampleMaskVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34990     PipelineMultisampleStateCreateInfo & setPSampleMask( const vk::SampleMask* pSampleMask_ )
34991     {
34992       pSampleMask = pSampleMask_;
34993       return *this;
34994     }
34995 
setAlphaToCoverageEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo34996     PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( vk::Bool32 alphaToCoverageEnable_ )
34997     {
34998       alphaToCoverageEnable = alphaToCoverageEnable_;
34999       return *this;
35000     }
35001 
setAlphaToOneEnableVULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo35002     PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( vk::Bool32 alphaToOneEnable_ )
35003     {
35004       alphaToOneEnable = alphaToOneEnable_;
35005       return *this;
35006     }
35007 
operator VkPipelineMultisampleStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo35008     operator VkPipelineMultisampleStateCreateInfo const&() const
35009     {
35010       return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
35011     }
35012 
operator VkPipelineMultisampleStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo35013     operator VkPipelineMultisampleStateCreateInfo &()
35014     {
35015       return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
35016     }
35017 
operator ==VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo35018     bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const
35019     {
35020       return ( sType == rhs.sType )
35021           && ( pNext == rhs.pNext )
35022           && ( flags == rhs.flags )
35023           && ( rasterizationSamples == rhs.rasterizationSamples )
35024           && ( sampleShadingEnable == rhs.sampleShadingEnable )
35025           && ( minSampleShading == rhs.minSampleShading )
35026           && ( pSampleMask == rhs.pSampleMask )
35027           && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
35028           && ( alphaToOneEnable == rhs.alphaToOneEnable );
35029     }
35030 
operator !=VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo35031     bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const
35032     {
35033       return !operator==( rhs );
35034     }
35035 
35036   private:
35037     using layout::PipelineMultisampleStateCreateInfo::sType;
35038   };
35039   static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
35040   static_assert( std::is_standard_layout<PipelineMultisampleStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
35041 
35042   struct StencilOpState
35043   {
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState35044     StencilOpState( vk::StencilOp failOp_ = vk::StencilOp::eKeep,
35045                     vk::StencilOp passOp_ = vk::StencilOp::eKeep,
35046                     vk::StencilOp depthFailOp_ = vk::StencilOp::eKeep,
35047                     vk::CompareOp compareOp_ = vk::CompareOp::eNever,
35048                     uint32_t compareMask_ = 0,
35049                     uint32_t writeMask_ = 0,
35050                     uint32_t reference_ = 0 )
35051         : failOp( failOp_ )
35052         , passOp( passOp_ )
35053         , depthFailOp( depthFailOp_ )
35054         , compareOp( compareOp_ )
35055         , compareMask( compareMask_ )
35056         , writeMask( writeMask_ )
35057         , reference( reference_ )
35058     {}
35059 
StencilOpStateVULKAN_HPP_NAMESPACE::StencilOpState35060     StencilOpState( VkStencilOpState const & rhs )
35061     {
35062       *reinterpret_cast<VkStencilOpState*>(this) = rhs;
35063     }
35064 
operator =VULKAN_HPP_NAMESPACE::StencilOpState35065     StencilOpState& operator=( VkStencilOpState const & rhs )
35066     {
35067       *reinterpret_cast<VkStencilOpState*>(this) = rhs;
35068       return *this;
35069     }
35070 
setFailOpVULKAN_HPP_NAMESPACE::StencilOpState35071     StencilOpState & setFailOp( vk::StencilOp failOp_ )
35072     {
35073       failOp = failOp_;
35074       return *this;
35075     }
35076 
setPassOpVULKAN_HPP_NAMESPACE::StencilOpState35077     StencilOpState & setPassOp( vk::StencilOp passOp_ )
35078     {
35079       passOp = passOp_;
35080       return *this;
35081     }
35082 
setDepthFailOpVULKAN_HPP_NAMESPACE::StencilOpState35083     StencilOpState & setDepthFailOp( vk::StencilOp depthFailOp_ )
35084     {
35085       depthFailOp = depthFailOp_;
35086       return *this;
35087     }
35088 
setCompareOpVULKAN_HPP_NAMESPACE::StencilOpState35089     StencilOpState & setCompareOp( vk::CompareOp compareOp_ )
35090     {
35091       compareOp = compareOp_;
35092       return *this;
35093     }
35094 
setCompareMaskVULKAN_HPP_NAMESPACE::StencilOpState35095     StencilOpState & setCompareMask( uint32_t compareMask_ )
35096     {
35097       compareMask = compareMask_;
35098       return *this;
35099     }
35100 
setWriteMaskVULKAN_HPP_NAMESPACE::StencilOpState35101     StencilOpState & setWriteMask( uint32_t writeMask_ )
35102     {
35103       writeMask = writeMask_;
35104       return *this;
35105     }
35106 
setReferenceVULKAN_HPP_NAMESPACE::StencilOpState35107     StencilOpState & setReference( uint32_t reference_ )
35108     {
35109       reference = reference_;
35110       return *this;
35111     }
35112 
operator VkStencilOpState const&VULKAN_HPP_NAMESPACE::StencilOpState35113     operator VkStencilOpState const&() const
35114     {
35115       return *reinterpret_cast<const VkStencilOpState*>( this );
35116     }
35117 
operator VkStencilOpState&VULKAN_HPP_NAMESPACE::StencilOpState35118     operator VkStencilOpState &()
35119     {
35120       return *reinterpret_cast<VkStencilOpState*>( this );
35121     }
35122 
operator ==VULKAN_HPP_NAMESPACE::StencilOpState35123     bool operator==( StencilOpState const& rhs ) const
35124     {
35125       return ( failOp == rhs.failOp )
35126           && ( passOp == rhs.passOp )
35127           && ( depthFailOp == rhs.depthFailOp )
35128           && ( compareOp == rhs.compareOp )
35129           && ( compareMask == rhs.compareMask )
35130           && ( writeMask == rhs.writeMask )
35131           && ( reference == rhs.reference );
35132     }
35133 
operator !=VULKAN_HPP_NAMESPACE::StencilOpState35134     bool operator!=( StencilOpState const& rhs ) const
35135     {
35136       return !operator==( rhs );
35137     }
35138 
35139   public:
35140     vk::StencilOp failOp;
35141     vk::StencilOp passOp;
35142     vk::StencilOp depthFailOp;
35143     vk::CompareOp compareOp;
35144     uint32_t compareMask;
35145     uint32_t writeMask;
35146     uint32_t reference;
35147   };
35148   static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
35149   static_assert( std::is_standard_layout<StencilOpState>::value, "struct wrapper is not a standard layout!" );
35150 
35151   namespace layout
35152   {
35153     struct PipelineDepthStencilStateCreateInfo
35154     {
35155     protected:
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineDepthStencilStateCreateInfo35156       PipelineDepthStencilStateCreateInfo( vk::PipelineDepthStencilStateCreateFlags flags_ = vk::PipelineDepthStencilStateCreateFlags(),
35157                                            vk::Bool32 depthTestEnable_ = 0,
35158                                            vk::Bool32 depthWriteEnable_ = 0,
35159                                            vk::CompareOp depthCompareOp_ = vk::CompareOp::eNever,
35160                                            vk::Bool32 depthBoundsTestEnable_ = 0,
35161                                            vk::Bool32 stencilTestEnable_ = 0,
35162                                            vk::StencilOpState front_ = vk::StencilOpState(),
35163                                            vk::StencilOpState back_ = vk::StencilOpState(),
35164                                            float minDepthBounds_ = 0,
35165                                            float maxDepthBounds_ = 0 )
35166         : flags( flags_ )
35167         , depthTestEnable( depthTestEnable_ )
35168         , depthWriteEnable( depthWriteEnable_ )
35169         , depthCompareOp( depthCompareOp_ )
35170         , depthBoundsTestEnable( depthBoundsTestEnable_ )
35171         , stencilTestEnable( stencilTestEnable_ )
35172         , front( front_ )
35173         , back( back_ )
35174         , minDepthBounds( minDepthBounds_ )
35175         , maxDepthBounds( maxDepthBounds_ )
35176       {}
35177 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineDepthStencilStateCreateInfo35178       PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs )
35179       {
35180         *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this) = rhs;
35181       }
35182 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineDepthStencilStateCreateInfo35183       PipelineDepthStencilStateCreateInfo& operator=( VkPipelineDepthStencilStateCreateInfo const & rhs )
35184       {
35185         *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this) = rhs;
35186         return *this;
35187       }
35188 
35189     public:
35190       vk::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
35191       const void* pNext = nullptr;
35192       vk::PipelineDepthStencilStateCreateFlags flags;
35193       vk::Bool32 depthTestEnable;
35194       vk::Bool32 depthWriteEnable;
35195       vk::CompareOp depthCompareOp;
35196       vk::Bool32 depthBoundsTestEnable;
35197       vk::Bool32 stencilTestEnable;
35198       vk::StencilOpState front;
35199       vk::StencilOpState back;
35200       float minDepthBounds;
35201       float maxDepthBounds;
35202     };
35203     static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "layout struct and wrapper have different size!" );
35204   }
35205 
35206   struct PipelineDepthStencilStateCreateInfo : public layout::PipelineDepthStencilStateCreateInfo
35207   {
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35208     PipelineDepthStencilStateCreateInfo( vk::PipelineDepthStencilStateCreateFlags flags_ = vk::PipelineDepthStencilStateCreateFlags(),
35209                                          vk::Bool32 depthTestEnable_ = 0,
35210                                          vk::Bool32 depthWriteEnable_ = 0,
35211                                          vk::CompareOp depthCompareOp_ = vk::CompareOp::eNever,
35212                                          vk::Bool32 depthBoundsTestEnable_ = 0,
35213                                          vk::Bool32 stencilTestEnable_ = 0,
35214                                          vk::StencilOpState front_ = vk::StencilOpState(),
35215                                          vk::StencilOpState back_ = vk::StencilOpState(),
35216                                          float minDepthBounds_ = 0,
35217                                          float maxDepthBounds_ = 0 )
35218       : layout::PipelineDepthStencilStateCreateInfo( flags_, depthTestEnable_, depthWriteEnable_, depthCompareOp_, depthBoundsTestEnable_, stencilTestEnable_, front_, back_, minDepthBounds_, maxDepthBounds_ )
35219     {}
35220 
PipelineDepthStencilStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35221     PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs )
35222       : layout::PipelineDepthStencilStateCreateInfo( rhs )
35223     {}
35224 
operator =VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35225     PipelineDepthStencilStateCreateInfo& operator=( VkPipelineDepthStencilStateCreateInfo const & rhs )
35226     {
35227       *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this) = rhs;
35228       return *this;
35229     }
35230 
setPNextVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35231     PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ )
35232     {
35233       pNext = pNext_;
35234       return *this;
35235     }
35236 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35237     PipelineDepthStencilStateCreateInfo & setFlags( vk::PipelineDepthStencilStateCreateFlags flags_ )
35238     {
35239       flags = flags_;
35240       return *this;
35241     }
35242 
setDepthTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35243     PipelineDepthStencilStateCreateInfo & setDepthTestEnable( vk::Bool32 depthTestEnable_ )
35244     {
35245       depthTestEnable = depthTestEnable_;
35246       return *this;
35247     }
35248 
setDepthWriteEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35249     PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( vk::Bool32 depthWriteEnable_ )
35250     {
35251       depthWriteEnable = depthWriteEnable_;
35252       return *this;
35253     }
35254 
setDepthCompareOpVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35255     PipelineDepthStencilStateCreateInfo & setDepthCompareOp( vk::CompareOp depthCompareOp_ )
35256     {
35257       depthCompareOp = depthCompareOp_;
35258       return *this;
35259     }
35260 
setDepthBoundsTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35261     PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( vk::Bool32 depthBoundsTestEnable_ )
35262     {
35263       depthBoundsTestEnable = depthBoundsTestEnable_;
35264       return *this;
35265     }
35266 
setStencilTestEnableVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35267     PipelineDepthStencilStateCreateInfo & setStencilTestEnable( vk::Bool32 stencilTestEnable_ )
35268     {
35269       stencilTestEnable = stencilTestEnable_;
35270       return *this;
35271     }
35272 
setFrontVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35273     PipelineDepthStencilStateCreateInfo & setFront( vk::StencilOpState front_ )
35274     {
35275       front = front_;
35276       return *this;
35277     }
35278 
setBackVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35279     PipelineDepthStencilStateCreateInfo & setBack( vk::StencilOpState back_ )
35280     {
35281       back = back_;
35282       return *this;
35283     }
35284 
setMinDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35285     PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ )
35286     {
35287       minDepthBounds = minDepthBounds_;
35288       return *this;
35289     }
35290 
setMaxDepthBoundsVULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35291     PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ )
35292     {
35293       maxDepthBounds = maxDepthBounds_;
35294       return *this;
35295     }
35296 
operator VkPipelineDepthStencilStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35297     operator VkPipelineDepthStencilStateCreateInfo const&() const
35298     {
35299       return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
35300     }
35301 
operator VkPipelineDepthStencilStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35302     operator VkPipelineDepthStencilStateCreateInfo &()
35303     {
35304       return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
35305     }
35306 
operator ==VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35307     bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const
35308     {
35309       return ( sType == rhs.sType )
35310           && ( pNext == rhs.pNext )
35311           && ( flags == rhs.flags )
35312           && ( depthTestEnable == rhs.depthTestEnable )
35313           && ( depthWriteEnable == rhs.depthWriteEnable )
35314           && ( depthCompareOp == rhs.depthCompareOp )
35315           && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
35316           && ( stencilTestEnable == rhs.stencilTestEnable )
35317           && ( front == rhs.front )
35318           && ( back == rhs.back )
35319           && ( minDepthBounds == rhs.minDepthBounds )
35320           && ( maxDepthBounds == rhs.maxDepthBounds );
35321     }
35322 
operator !=VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo35323     bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const
35324     {
35325       return !operator==( rhs );
35326     }
35327 
35328   private:
35329     using layout::PipelineDepthStencilStateCreateInfo::sType;
35330   };
35331   static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
35332   static_assert( std::is_standard_layout<PipelineDepthStencilStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
35333 
35334   struct PipelineColorBlendAttachmentState
35335   {
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35336     PipelineColorBlendAttachmentState( vk::Bool32 blendEnable_ = 0,
35337                                        vk::BlendFactor srcColorBlendFactor_ = vk::BlendFactor::eZero,
35338                                        vk::BlendFactor dstColorBlendFactor_ = vk::BlendFactor::eZero,
35339                                        vk::BlendOp colorBlendOp_ = vk::BlendOp::eAdd,
35340                                        vk::BlendFactor srcAlphaBlendFactor_ = vk::BlendFactor::eZero,
35341                                        vk::BlendFactor dstAlphaBlendFactor_ = vk::BlendFactor::eZero,
35342                                        vk::BlendOp alphaBlendOp_ = vk::BlendOp::eAdd,
35343                                        vk::ColorComponentFlags colorWriteMask_ = vk::ColorComponentFlags() )
35344         : blendEnable( blendEnable_ )
35345         , srcColorBlendFactor( srcColorBlendFactor_ )
35346         , dstColorBlendFactor( dstColorBlendFactor_ )
35347         , colorBlendOp( colorBlendOp_ )
35348         , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
35349         , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
35350         , alphaBlendOp( alphaBlendOp_ )
35351         , colorWriteMask( colorWriteMask_ )
35352     {}
35353 
PipelineColorBlendAttachmentStateVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35354     PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs )
35355     {
35356       *reinterpret_cast<VkPipelineColorBlendAttachmentState*>(this) = rhs;
35357     }
35358 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35359     PipelineColorBlendAttachmentState& operator=( VkPipelineColorBlendAttachmentState const & rhs )
35360     {
35361       *reinterpret_cast<VkPipelineColorBlendAttachmentState*>(this) = rhs;
35362       return *this;
35363     }
35364 
setBlendEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35365     PipelineColorBlendAttachmentState & setBlendEnable( vk::Bool32 blendEnable_ )
35366     {
35367       blendEnable = blendEnable_;
35368       return *this;
35369     }
35370 
setSrcColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35371     PipelineColorBlendAttachmentState & setSrcColorBlendFactor( vk::BlendFactor srcColorBlendFactor_ )
35372     {
35373       srcColorBlendFactor = srcColorBlendFactor_;
35374       return *this;
35375     }
35376 
setDstColorBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35377     PipelineColorBlendAttachmentState & setDstColorBlendFactor( vk::BlendFactor dstColorBlendFactor_ )
35378     {
35379       dstColorBlendFactor = dstColorBlendFactor_;
35380       return *this;
35381     }
35382 
setColorBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35383     PipelineColorBlendAttachmentState & setColorBlendOp( vk::BlendOp colorBlendOp_ )
35384     {
35385       colorBlendOp = colorBlendOp_;
35386       return *this;
35387     }
35388 
setSrcAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35389     PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( vk::BlendFactor srcAlphaBlendFactor_ )
35390     {
35391       srcAlphaBlendFactor = srcAlphaBlendFactor_;
35392       return *this;
35393     }
35394 
setDstAlphaBlendFactorVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35395     PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( vk::BlendFactor dstAlphaBlendFactor_ )
35396     {
35397       dstAlphaBlendFactor = dstAlphaBlendFactor_;
35398       return *this;
35399     }
35400 
setAlphaBlendOpVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35401     PipelineColorBlendAttachmentState & setAlphaBlendOp( vk::BlendOp alphaBlendOp_ )
35402     {
35403       alphaBlendOp = alphaBlendOp_;
35404       return *this;
35405     }
35406 
setColorWriteMaskVULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35407     PipelineColorBlendAttachmentState & setColorWriteMask( vk::ColorComponentFlags colorWriteMask_ )
35408     {
35409       colorWriteMask = colorWriteMask_;
35410       return *this;
35411     }
35412 
operator VkPipelineColorBlendAttachmentState const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35413     operator VkPipelineColorBlendAttachmentState const&() const
35414     {
35415       return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
35416     }
35417 
operator VkPipelineColorBlendAttachmentState&VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35418     operator VkPipelineColorBlendAttachmentState &()
35419     {
35420       return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
35421     }
35422 
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35423     bool operator==( PipelineColorBlendAttachmentState const& rhs ) const
35424     {
35425       return ( blendEnable == rhs.blendEnable )
35426           && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
35427           && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
35428           && ( colorBlendOp == rhs.colorBlendOp )
35429           && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
35430           && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
35431           && ( alphaBlendOp == rhs.alphaBlendOp )
35432           && ( colorWriteMask == rhs.colorWriteMask );
35433     }
35434 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState35435     bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const
35436     {
35437       return !operator==( rhs );
35438     }
35439 
35440   public:
35441     vk::Bool32 blendEnable;
35442     vk::BlendFactor srcColorBlendFactor;
35443     vk::BlendFactor dstColorBlendFactor;
35444     vk::BlendOp colorBlendOp;
35445     vk::BlendFactor srcAlphaBlendFactor;
35446     vk::BlendFactor dstAlphaBlendFactor;
35447     vk::BlendOp alphaBlendOp;
35448     vk::ColorComponentFlags colorWriteMask;
35449   };
35450   static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
35451   static_assert( std::is_standard_layout<PipelineColorBlendAttachmentState>::value, "struct wrapper is not a standard layout!" );
35452 
35453   namespace layout
35454   {
35455     struct PipelineColorBlendStateCreateInfo
35456     {
35457     protected:
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineColorBlendStateCreateInfo35458       PipelineColorBlendStateCreateInfo( vk::PipelineColorBlendStateCreateFlags flags_ = vk::PipelineColorBlendStateCreateFlags(),
35459                                          vk::Bool32 logicOpEnable_ = 0,
35460                                          vk::LogicOp logicOp_ = vk::LogicOp::eClear,
35461                                          uint32_t attachmentCount_ = 0,
35462                                          const vk::PipelineColorBlendAttachmentState* pAttachments_ = nullptr,
35463                                          std::array<float,4> const& blendConstants_ = { { 0 } } )
35464         : flags( flags_ )
35465         , logicOpEnable( logicOpEnable_ )
35466         , logicOp( logicOp_ )
35467         , attachmentCount( attachmentCount_ )
35468         , pAttachments( pAttachments_ )
35469       {
35470         memcpy( &blendConstants, blendConstants_.data(), 4 * sizeof( float ) );
35471 
35472       }
35473 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineColorBlendStateCreateInfo35474       PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs )
35475       {
35476         *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this) = rhs;
35477       }
35478 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineColorBlendStateCreateInfo35479       PipelineColorBlendStateCreateInfo& operator=( VkPipelineColorBlendStateCreateInfo const & rhs )
35480       {
35481         *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this) = rhs;
35482         return *this;
35483       }
35484 
35485     public:
35486       vk::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
35487       const void* pNext = nullptr;
35488       vk::PipelineColorBlendStateCreateFlags flags;
35489       vk::Bool32 logicOpEnable;
35490       vk::LogicOp logicOp;
35491       uint32_t attachmentCount;
35492       const vk::PipelineColorBlendAttachmentState* pAttachments;
35493       float blendConstants[4];
35494     };
35495     static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "layout struct and wrapper have different size!" );
35496   }
35497 
35498   struct PipelineColorBlendStateCreateInfo : public layout::PipelineColorBlendStateCreateInfo
35499   {
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35500     PipelineColorBlendStateCreateInfo( vk::PipelineColorBlendStateCreateFlags flags_ = vk::PipelineColorBlendStateCreateFlags(),
35501                                        vk::Bool32 logicOpEnable_ = 0,
35502                                        vk::LogicOp logicOp_ = vk::LogicOp::eClear,
35503                                        uint32_t attachmentCount_ = 0,
35504                                        const vk::PipelineColorBlendAttachmentState* pAttachments_ = nullptr,
35505                                        std::array<float,4> const& blendConstants_ = { { 0 } } )
35506       : layout::PipelineColorBlendStateCreateInfo( flags_, logicOpEnable_, logicOp_, attachmentCount_, pAttachments_, blendConstants_ )
35507     {}
35508 
PipelineColorBlendStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35509     PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs )
35510       : layout::PipelineColorBlendStateCreateInfo( rhs )
35511     {}
35512 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35513     PipelineColorBlendStateCreateInfo& operator=( VkPipelineColorBlendStateCreateInfo const & rhs )
35514     {
35515       *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this) = rhs;
35516       return *this;
35517     }
35518 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35519     PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ )
35520     {
35521       pNext = pNext_;
35522       return *this;
35523     }
35524 
setFlagsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35525     PipelineColorBlendStateCreateInfo & setFlags( vk::PipelineColorBlendStateCreateFlags flags_ )
35526     {
35527       flags = flags_;
35528       return *this;
35529     }
35530 
setLogicOpEnableVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35531     PipelineColorBlendStateCreateInfo & setLogicOpEnable( vk::Bool32 logicOpEnable_ )
35532     {
35533       logicOpEnable = logicOpEnable_;
35534       return *this;
35535     }
35536 
setLogicOpVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35537     PipelineColorBlendStateCreateInfo & setLogicOp( vk::LogicOp logicOp_ )
35538     {
35539       logicOp = logicOp_;
35540       return *this;
35541     }
35542 
setAttachmentCountVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35543     PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
35544     {
35545       attachmentCount = attachmentCount_;
35546       return *this;
35547     }
35548 
setPAttachmentsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35549     PipelineColorBlendStateCreateInfo & setPAttachments( const vk::PipelineColorBlendAttachmentState* pAttachments_ )
35550     {
35551       pAttachments = pAttachments_;
35552       return *this;
35553     }
35554 
setBlendConstantsVULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35555     PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ )
35556     {
35557       memcpy( blendConstants, blendConstants_.data(), 4 * sizeof( float ) );
35558       return *this;
35559     }
35560 
operator VkPipelineColorBlendStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35561     operator VkPipelineColorBlendStateCreateInfo const&() const
35562     {
35563       return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
35564     }
35565 
operator VkPipelineColorBlendStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35566     operator VkPipelineColorBlendStateCreateInfo &()
35567     {
35568       return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
35569     }
35570 
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35571     bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const
35572     {
35573       return ( sType == rhs.sType )
35574           && ( pNext == rhs.pNext )
35575           && ( flags == rhs.flags )
35576           && ( logicOpEnable == rhs.logicOpEnable )
35577           && ( logicOp == rhs.logicOp )
35578           && ( attachmentCount == rhs.attachmentCount )
35579           && ( pAttachments == rhs.pAttachments )
35580           && ( memcmp( blendConstants, rhs.blendConstants, 4 * sizeof( float ) ) == 0 );
35581     }
35582 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo35583     bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const
35584     {
35585       return !operator==( rhs );
35586     }
35587 
35588   private:
35589     using layout::PipelineColorBlendStateCreateInfo::sType;
35590   };
35591   static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
35592   static_assert( std::is_standard_layout<PipelineColorBlendStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
35593 
35594   namespace layout
35595   {
35596     struct PipelineDynamicStateCreateInfo
35597     {
35598     protected:
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineDynamicStateCreateInfo35599       PipelineDynamicStateCreateInfo( vk::PipelineDynamicStateCreateFlags flags_ = vk::PipelineDynamicStateCreateFlags(),
35600                                       uint32_t dynamicStateCount_ = 0,
35601                                       const vk::DynamicState* pDynamicStates_ = nullptr )
35602         : flags( flags_ )
35603         , dynamicStateCount( dynamicStateCount_ )
35604         , pDynamicStates( pDynamicStates_ )
35605       {}
35606 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineDynamicStateCreateInfo35607       PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs )
35608       {
35609         *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this) = rhs;
35610       }
35611 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineDynamicStateCreateInfo35612       PipelineDynamicStateCreateInfo& operator=( VkPipelineDynamicStateCreateInfo const & rhs )
35613       {
35614         *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this) = rhs;
35615         return *this;
35616       }
35617 
35618     public:
35619       vk::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
35620       const void* pNext = nullptr;
35621       vk::PipelineDynamicStateCreateFlags flags;
35622       uint32_t dynamicStateCount;
35623       const vk::DynamicState* pDynamicStates;
35624     };
35625     static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "layout struct and wrapper have different size!" );
35626   }
35627 
35628   struct PipelineDynamicStateCreateInfo : public layout::PipelineDynamicStateCreateInfo
35629   {
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35630     PipelineDynamicStateCreateInfo( vk::PipelineDynamicStateCreateFlags flags_ = vk::PipelineDynamicStateCreateFlags(),
35631                                     uint32_t dynamicStateCount_ = 0,
35632                                     const vk::DynamicState* pDynamicStates_ = nullptr )
35633       : layout::PipelineDynamicStateCreateInfo( flags_, dynamicStateCount_, pDynamicStates_ )
35634     {}
35635 
PipelineDynamicStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35636     PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs )
35637       : layout::PipelineDynamicStateCreateInfo( rhs )
35638     {}
35639 
operator =VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35640     PipelineDynamicStateCreateInfo& operator=( VkPipelineDynamicStateCreateInfo const & rhs )
35641     {
35642       *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this) = rhs;
35643       return *this;
35644     }
35645 
setPNextVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35646     PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ )
35647     {
35648       pNext = pNext_;
35649       return *this;
35650     }
35651 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35652     PipelineDynamicStateCreateInfo & setFlags( vk::PipelineDynamicStateCreateFlags flags_ )
35653     {
35654       flags = flags_;
35655       return *this;
35656     }
35657 
setDynamicStateCountVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35658     PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ )
35659     {
35660       dynamicStateCount = dynamicStateCount_;
35661       return *this;
35662     }
35663 
setPDynamicStatesVULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35664     PipelineDynamicStateCreateInfo & setPDynamicStates( const vk::DynamicState* pDynamicStates_ )
35665     {
35666       pDynamicStates = pDynamicStates_;
35667       return *this;
35668     }
35669 
operator VkPipelineDynamicStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35670     operator VkPipelineDynamicStateCreateInfo const&() const
35671     {
35672       return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
35673     }
35674 
operator VkPipelineDynamicStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35675     operator VkPipelineDynamicStateCreateInfo &()
35676     {
35677       return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
35678     }
35679 
operator ==VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35680     bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const
35681     {
35682       return ( sType == rhs.sType )
35683           && ( pNext == rhs.pNext )
35684           && ( flags == rhs.flags )
35685           && ( dynamicStateCount == rhs.dynamicStateCount )
35686           && ( pDynamicStates == rhs.pDynamicStates );
35687     }
35688 
operator !=VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo35689     bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const
35690     {
35691       return !operator==( rhs );
35692     }
35693 
35694   private:
35695     using layout::PipelineDynamicStateCreateInfo::sType;
35696   };
35697   static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
35698   static_assert( std::is_standard_layout<PipelineDynamicStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
35699 
35700   namespace layout
35701   {
35702     struct GraphicsPipelineCreateInfo
35703     {
35704     protected:
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::layout::GraphicsPipelineCreateInfo35705       GraphicsPipelineCreateInfo( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
35706                                   uint32_t stageCount_ = 0,
35707                                   const vk::PipelineShaderStageCreateInfo* pStages_ = nullptr,
35708                                   const vk::PipelineVertexInputStateCreateInfo* pVertexInputState_ = nullptr,
35709                                   const vk::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = nullptr,
35710                                   const vk::PipelineTessellationStateCreateInfo* pTessellationState_ = nullptr,
35711                                   const vk::PipelineViewportStateCreateInfo* pViewportState_ = nullptr,
35712                                   const vk::PipelineRasterizationStateCreateInfo* pRasterizationState_ = nullptr,
35713                                   const vk::PipelineMultisampleStateCreateInfo* pMultisampleState_ = nullptr,
35714                                   const vk::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = nullptr,
35715                                   const vk::PipelineColorBlendStateCreateInfo* pColorBlendState_ = nullptr,
35716                                   const vk::PipelineDynamicStateCreateInfo* pDynamicState_ = nullptr,
35717                                   vk::PipelineLayout layout_ = vk::PipelineLayout(),
35718                                   vk::RenderPass renderPass_ = vk::RenderPass(),
35719                                   uint32_t subpass_ = 0,
35720                                   vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
35721                                   int32_t basePipelineIndex_ = 0 )
35722         : flags( flags_ )
35723         , stageCount( stageCount_ )
35724         , pStages( pStages_ )
35725         , pVertexInputState( pVertexInputState_ )
35726         , pInputAssemblyState( pInputAssemblyState_ )
35727         , pTessellationState( pTessellationState_ )
35728         , pViewportState( pViewportState_ )
35729         , pRasterizationState( pRasterizationState_ )
35730         , pMultisampleState( pMultisampleState_ )
35731         , pDepthStencilState( pDepthStencilState_ )
35732         , pColorBlendState( pColorBlendState_ )
35733         , pDynamicState( pDynamicState_ )
35734         , layout( layout_ )
35735         , renderPass( renderPass_ )
35736         , subpass( subpass_ )
35737         , basePipelineHandle( basePipelineHandle_ )
35738         , basePipelineIndex( basePipelineIndex_ )
35739       {}
35740 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::layout::GraphicsPipelineCreateInfo35741       GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs )
35742       {
35743         *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this) = rhs;
35744       }
35745 
operator =VULKAN_HPP_NAMESPACE::layout::GraphicsPipelineCreateInfo35746       GraphicsPipelineCreateInfo& operator=( VkGraphicsPipelineCreateInfo const & rhs )
35747       {
35748         *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this) = rhs;
35749         return *this;
35750       }
35751 
35752     public:
35753       vk::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
35754       const void* pNext = nullptr;
35755       vk::PipelineCreateFlags flags;
35756       uint32_t stageCount;
35757       const vk::PipelineShaderStageCreateInfo* pStages;
35758       const vk::PipelineVertexInputStateCreateInfo* pVertexInputState;
35759       const vk::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
35760       const vk::PipelineTessellationStateCreateInfo* pTessellationState;
35761       const vk::PipelineViewportStateCreateInfo* pViewportState;
35762       const vk::PipelineRasterizationStateCreateInfo* pRasterizationState;
35763       const vk::PipelineMultisampleStateCreateInfo* pMultisampleState;
35764       const vk::PipelineDepthStencilStateCreateInfo* pDepthStencilState;
35765       const vk::PipelineColorBlendStateCreateInfo* pColorBlendState;
35766       const vk::PipelineDynamicStateCreateInfo* pDynamicState;
35767       vk::PipelineLayout layout;
35768       vk::RenderPass renderPass;
35769       uint32_t subpass;
35770       vk::Pipeline basePipelineHandle;
35771       int32_t basePipelineIndex;
35772     };
35773     static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "layout struct and wrapper have different size!" );
35774   }
35775 
35776   struct GraphicsPipelineCreateInfo : public layout::GraphicsPipelineCreateInfo
35777   {
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35778     GraphicsPipelineCreateInfo( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
35779                                 uint32_t stageCount_ = 0,
35780                                 const vk::PipelineShaderStageCreateInfo* pStages_ = nullptr,
35781                                 const vk::PipelineVertexInputStateCreateInfo* pVertexInputState_ = nullptr,
35782                                 const vk::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = nullptr,
35783                                 const vk::PipelineTessellationStateCreateInfo* pTessellationState_ = nullptr,
35784                                 const vk::PipelineViewportStateCreateInfo* pViewportState_ = nullptr,
35785                                 const vk::PipelineRasterizationStateCreateInfo* pRasterizationState_ = nullptr,
35786                                 const vk::PipelineMultisampleStateCreateInfo* pMultisampleState_ = nullptr,
35787                                 const vk::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = nullptr,
35788                                 const vk::PipelineColorBlendStateCreateInfo* pColorBlendState_ = nullptr,
35789                                 const vk::PipelineDynamicStateCreateInfo* pDynamicState_ = nullptr,
35790                                 vk::PipelineLayout layout_ = vk::PipelineLayout(),
35791                                 vk::RenderPass renderPass_ = vk::RenderPass(),
35792                                 uint32_t subpass_ = 0,
35793                                 vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
35794                                 int32_t basePipelineIndex_ = 0 )
35795       : layout::GraphicsPipelineCreateInfo( flags_, stageCount_, pStages_, pVertexInputState_, pInputAssemblyState_, pTessellationState_, pViewportState_, pRasterizationState_, pMultisampleState_, pDepthStencilState_, pColorBlendState_, pDynamicState_, layout_, renderPass_, subpass_, basePipelineHandle_, basePipelineIndex_ )
35796     {}
35797 
GraphicsPipelineCreateInfoVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35798     GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs )
35799       : layout::GraphicsPipelineCreateInfo( rhs )
35800     {}
35801 
operator =VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35802     GraphicsPipelineCreateInfo& operator=( VkGraphicsPipelineCreateInfo const & rhs )
35803     {
35804       *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this) = rhs;
35805       return *this;
35806     }
35807 
setPNextVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35808     GraphicsPipelineCreateInfo & setPNext( const void* pNext_ )
35809     {
35810       pNext = pNext_;
35811       return *this;
35812     }
35813 
setFlagsVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35814     GraphicsPipelineCreateInfo & setFlags( vk::PipelineCreateFlags flags_ )
35815     {
35816       flags = flags_;
35817       return *this;
35818     }
35819 
setStageCountVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35820     GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ )
35821     {
35822       stageCount = stageCount_;
35823       return *this;
35824     }
35825 
setPStagesVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35826     GraphicsPipelineCreateInfo & setPStages( const vk::PipelineShaderStageCreateInfo* pStages_ )
35827     {
35828       pStages = pStages_;
35829       return *this;
35830     }
35831 
setPVertexInputStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35832     GraphicsPipelineCreateInfo & setPVertexInputState( const vk::PipelineVertexInputStateCreateInfo* pVertexInputState_ )
35833     {
35834       pVertexInputState = pVertexInputState_;
35835       return *this;
35836     }
35837 
setPInputAssemblyStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35838     GraphicsPipelineCreateInfo & setPInputAssemblyState( const vk::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ )
35839     {
35840       pInputAssemblyState = pInputAssemblyState_;
35841       return *this;
35842     }
35843 
setPTessellationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35844     GraphicsPipelineCreateInfo & setPTessellationState( const vk::PipelineTessellationStateCreateInfo* pTessellationState_ )
35845     {
35846       pTessellationState = pTessellationState_;
35847       return *this;
35848     }
35849 
setPViewportStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35850     GraphicsPipelineCreateInfo & setPViewportState( const vk::PipelineViewportStateCreateInfo* pViewportState_ )
35851     {
35852       pViewportState = pViewportState_;
35853       return *this;
35854     }
35855 
setPRasterizationStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35856     GraphicsPipelineCreateInfo & setPRasterizationState( const vk::PipelineRasterizationStateCreateInfo* pRasterizationState_ )
35857     {
35858       pRasterizationState = pRasterizationState_;
35859       return *this;
35860     }
35861 
setPMultisampleStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35862     GraphicsPipelineCreateInfo & setPMultisampleState( const vk::PipelineMultisampleStateCreateInfo* pMultisampleState_ )
35863     {
35864       pMultisampleState = pMultisampleState_;
35865       return *this;
35866     }
35867 
setPDepthStencilStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35868     GraphicsPipelineCreateInfo & setPDepthStencilState( const vk::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ )
35869     {
35870       pDepthStencilState = pDepthStencilState_;
35871       return *this;
35872     }
35873 
setPColorBlendStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35874     GraphicsPipelineCreateInfo & setPColorBlendState( const vk::PipelineColorBlendStateCreateInfo* pColorBlendState_ )
35875     {
35876       pColorBlendState = pColorBlendState_;
35877       return *this;
35878     }
35879 
setPDynamicStateVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35880     GraphicsPipelineCreateInfo & setPDynamicState( const vk::PipelineDynamicStateCreateInfo* pDynamicState_ )
35881     {
35882       pDynamicState = pDynamicState_;
35883       return *this;
35884     }
35885 
setLayoutVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35886     GraphicsPipelineCreateInfo & setLayout( vk::PipelineLayout layout_ )
35887     {
35888       layout = layout_;
35889       return *this;
35890     }
35891 
setRenderPassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35892     GraphicsPipelineCreateInfo & setRenderPass( vk::RenderPass renderPass_ )
35893     {
35894       renderPass = renderPass_;
35895       return *this;
35896     }
35897 
setSubpassVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35898     GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ )
35899     {
35900       subpass = subpass_;
35901       return *this;
35902     }
35903 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35904     GraphicsPipelineCreateInfo & setBasePipelineHandle( vk::Pipeline basePipelineHandle_ )
35905     {
35906       basePipelineHandle = basePipelineHandle_;
35907       return *this;
35908     }
35909 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35910     GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ )
35911     {
35912       basePipelineIndex = basePipelineIndex_;
35913       return *this;
35914     }
35915 
operator VkGraphicsPipelineCreateInfo const&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35916     operator VkGraphicsPipelineCreateInfo const&() const
35917     {
35918       return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
35919     }
35920 
operator VkGraphicsPipelineCreateInfo&VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35921     operator VkGraphicsPipelineCreateInfo &()
35922     {
35923       return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
35924     }
35925 
operator ==VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35926     bool operator==( GraphicsPipelineCreateInfo const& rhs ) const
35927     {
35928       return ( sType == rhs.sType )
35929           && ( pNext == rhs.pNext )
35930           && ( flags == rhs.flags )
35931           && ( stageCount == rhs.stageCount )
35932           && ( pStages == rhs.pStages )
35933           && ( pVertexInputState == rhs.pVertexInputState )
35934           && ( pInputAssemblyState == rhs.pInputAssemblyState )
35935           && ( pTessellationState == rhs.pTessellationState )
35936           && ( pViewportState == rhs.pViewportState )
35937           && ( pRasterizationState == rhs.pRasterizationState )
35938           && ( pMultisampleState == rhs.pMultisampleState )
35939           && ( pDepthStencilState == rhs.pDepthStencilState )
35940           && ( pColorBlendState == rhs.pColorBlendState )
35941           && ( pDynamicState == rhs.pDynamicState )
35942           && ( layout == rhs.layout )
35943           && ( renderPass == rhs.renderPass )
35944           && ( subpass == rhs.subpass )
35945           && ( basePipelineHandle == rhs.basePipelineHandle )
35946           && ( basePipelineIndex == rhs.basePipelineIndex );
35947     }
35948 
operator !=VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo35949     bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const
35950     {
35951       return !operator==( rhs );
35952     }
35953 
35954   private:
35955     using layout::GraphicsPipelineCreateInfo::sType;
35956   };
35957   static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
35958   static_assert( std::is_standard_layout<GraphicsPipelineCreateInfo>::value, "struct wrapper is not a standard layout!" );
35959 
35960   struct XYColorEXT
35961   {
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT35962     XYColorEXT( float x_ = 0,
35963                 float y_ = 0 )
35964         : x( x_ )
35965         , y( y_ )
35966     {}
35967 
XYColorEXTVULKAN_HPP_NAMESPACE::XYColorEXT35968     XYColorEXT( VkXYColorEXT const & rhs )
35969     {
35970       *reinterpret_cast<VkXYColorEXT*>(this) = rhs;
35971     }
35972 
operator =VULKAN_HPP_NAMESPACE::XYColorEXT35973     XYColorEXT& operator=( VkXYColorEXT const & rhs )
35974     {
35975       *reinterpret_cast<VkXYColorEXT*>(this) = rhs;
35976       return *this;
35977     }
35978 
setXVULKAN_HPP_NAMESPACE::XYColorEXT35979     XYColorEXT & setX( float x_ )
35980     {
35981       x = x_;
35982       return *this;
35983     }
35984 
setYVULKAN_HPP_NAMESPACE::XYColorEXT35985     XYColorEXT & setY( float y_ )
35986     {
35987       y = y_;
35988       return *this;
35989     }
35990 
operator VkXYColorEXT const&VULKAN_HPP_NAMESPACE::XYColorEXT35991     operator VkXYColorEXT const&() const
35992     {
35993       return *reinterpret_cast<const VkXYColorEXT*>( this );
35994     }
35995 
operator VkXYColorEXT&VULKAN_HPP_NAMESPACE::XYColorEXT35996     operator VkXYColorEXT &()
35997     {
35998       return *reinterpret_cast<VkXYColorEXT*>( this );
35999     }
36000 
operator ==VULKAN_HPP_NAMESPACE::XYColorEXT36001     bool operator==( XYColorEXT const& rhs ) const
36002     {
36003       return ( x == rhs.x )
36004           && ( y == rhs.y );
36005     }
36006 
operator !=VULKAN_HPP_NAMESPACE::XYColorEXT36007     bool operator!=( XYColorEXT const& rhs ) const
36008     {
36009       return !operator==( rhs );
36010     }
36011 
36012   public:
36013     float x;
36014     float y;
36015   };
36016   static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
36017   static_assert( std::is_standard_layout<XYColorEXT>::value, "struct wrapper is not a standard layout!" );
36018 
36019   namespace layout
36020   {
36021     struct HdrMetadataEXT
36022     {
36023     protected:
HdrMetadataEXTVULKAN_HPP_NAMESPACE::layout::HdrMetadataEXT36024       HdrMetadataEXT( vk::XYColorEXT displayPrimaryRed_ = vk::XYColorEXT(),
36025                       vk::XYColorEXT displayPrimaryGreen_ = vk::XYColorEXT(),
36026                       vk::XYColorEXT displayPrimaryBlue_ = vk::XYColorEXT(),
36027                       vk::XYColorEXT whitePoint_ = vk::XYColorEXT(),
36028                       float maxLuminance_ = 0,
36029                       float minLuminance_ = 0,
36030                       float maxContentLightLevel_ = 0,
36031                       float maxFrameAverageLightLevel_ = 0 )
36032         : displayPrimaryRed( displayPrimaryRed_ )
36033         , displayPrimaryGreen( displayPrimaryGreen_ )
36034         , displayPrimaryBlue( displayPrimaryBlue_ )
36035         , whitePoint( whitePoint_ )
36036         , maxLuminance( maxLuminance_ )
36037         , minLuminance( minLuminance_ )
36038         , maxContentLightLevel( maxContentLightLevel_ )
36039         , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
36040       {}
36041 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::layout::HdrMetadataEXT36042       HdrMetadataEXT( VkHdrMetadataEXT const & rhs )
36043       {
36044         *reinterpret_cast<VkHdrMetadataEXT*>(this) = rhs;
36045       }
36046 
operator =VULKAN_HPP_NAMESPACE::layout::HdrMetadataEXT36047       HdrMetadataEXT& operator=( VkHdrMetadataEXT const & rhs )
36048       {
36049         *reinterpret_cast<VkHdrMetadataEXT*>(this) = rhs;
36050         return *this;
36051       }
36052 
36053     public:
36054       vk::StructureType sType = StructureType::eHdrMetadataEXT;
36055       const void* pNext = nullptr;
36056       vk::XYColorEXT displayPrimaryRed;
36057       vk::XYColorEXT displayPrimaryGreen;
36058       vk::XYColorEXT displayPrimaryBlue;
36059       vk::XYColorEXT whitePoint;
36060       float maxLuminance;
36061       float minLuminance;
36062       float maxContentLightLevel;
36063       float maxFrameAverageLightLevel;
36064     };
36065     static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "layout struct and wrapper have different size!" );
36066   }
36067 
36068   struct HdrMetadataEXT : public layout::HdrMetadataEXT
36069   {
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT36070     HdrMetadataEXT( vk::XYColorEXT displayPrimaryRed_ = vk::XYColorEXT(),
36071                     vk::XYColorEXT displayPrimaryGreen_ = vk::XYColorEXT(),
36072                     vk::XYColorEXT displayPrimaryBlue_ = vk::XYColorEXT(),
36073                     vk::XYColorEXT whitePoint_ = vk::XYColorEXT(),
36074                     float maxLuminance_ = 0,
36075                     float minLuminance_ = 0,
36076                     float maxContentLightLevel_ = 0,
36077                     float maxFrameAverageLightLevel_ = 0 )
36078       : layout::HdrMetadataEXT( displayPrimaryRed_, displayPrimaryGreen_, displayPrimaryBlue_, whitePoint_, maxLuminance_, minLuminance_, maxContentLightLevel_, maxFrameAverageLightLevel_ )
36079     {}
36080 
HdrMetadataEXTVULKAN_HPP_NAMESPACE::HdrMetadataEXT36081     HdrMetadataEXT( VkHdrMetadataEXT const & rhs )
36082       : layout::HdrMetadataEXT( rhs )
36083     {}
36084 
operator =VULKAN_HPP_NAMESPACE::HdrMetadataEXT36085     HdrMetadataEXT& operator=( VkHdrMetadataEXT const & rhs )
36086     {
36087       *reinterpret_cast<VkHdrMetadataEXT*>(this) = rhs;
36088       return *this;
36089     }
36090 
setPNextVULKAN_HPP_NAMESPACE::HdrMetadataEXT36091     HdrMetadataEXT & setPNext( const void* pNext_ )
36092     {
36093       pNext = pNext_;
36094       return *this;
36095     }
36096 
setDisplayPrimaryRedVULKAN_HPP_NAMESPACE::HdrMetadataEXT36097     HdrMetadataEXT & setDisplayPrimaryRed( vk::XYColorEXT displayPrimaryRed_ )
36098     {
36099       displayPrimaryRed = displayPrimaryRed_;
36100       return *this;
36101     }
36102 
setDisplayPrimaryGreenVULKAN_HPP_NAMESPACE::HdrMetadataEXT36103     HdrMetadataEXT & setDisplayPrimaryGreen( vk::XYColorEXT displayPrimaryGreen_ )
36104     {
36105       displayPrimaryGreen = displayPrimaryGreen_;
36106       return *this;
36107     }
36108 
setDisplayPrimaryBlueVULKAN_HPP_NAMESPACE::HdrMetadataEXT36109     HdrMetadataEXT & setDisplayPrimaryBlue( vk::XYColorEXT displayPrimaryBlue_ )
36110     {
36111       displayPrimaryBlue = displayPrimaryBlue_;
36112       return *this;
36113     }
36114 
setWhitePointVULKAN_HPP_NAMESPACE::HdrMetadataEXT36115     HdrMetadataEXT & setWhitePoint( vk::XYColorEXT whitePoint_ )
36116     {
36117       whitePoint = whitePoint_;
36118       return *this;
36119     }
36120 
setMaxLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT36121     HdrMetadataEXT & setMaxLuminance( float maxLuminance_ )
36122     {
36123       maxLuminance = maxLuminance_;
36124       return *this;
36125     }
36126 
setMinLuminanceVULKAN_HPP_NAMESPACE::HdrMetadataEXT36127     HdrMetadataEXT & setMinLuminance( float minLuminance_ )
36128     {
36129       minLuminance = minLuminance_;
36130       return *this;
36131     }
36132 
setMaxContentLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT36133     HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ )
36134     {
36135       maxContentLightLevel = maxContentLightLevel_;
36136       return *this;
36137     }
36138 
setMaxFrameAverageLightLevelVULKAN_HPP_NAMESPACE::HdrMetadataEXT36139     HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ )
36140     {
36141       maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
36142       return *this;
36143     }
36144 
operator VkHdrMetadataEXT const&VULKAN_HPP_NAMESPACE::HdrMetadataEXT36145     operator VkHdrMetadataEXT const&() const
36146     {
36147       return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
36148     }
36149 
operator VkHdrMetadataEXT&VULKAN_HPP_NAMESPACE::HdrMetadataEXT36150     operator VkHdrMetadataEXT &()
36151     {
36152       return *reinterpret_cast<VkHdrMetadataEXT*>( this );
36153     }
36154 
operator ==VULKAN_HPP_NAMESPACE::HdrMetadataEXT36155     bool operator==( HdrMetadataEXT const& rhs ) const
36156     {
36157       return ( sType == rhs.sType )
36158           && ( pNext == rhs.pNext )
36159           && ( displayPrimaryRed == rhs.displayPrimaryRed )
36160           && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
36161           && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
36162           && ( whitePoint == rhs.whitePoint )
36163           && ( maxLuminance == rhs.maxLuminance )
36164           && ( minLuminance == rhs.minLuminance )
36165           && ( maxContentLightLevel == rhs.maxContentLightLevel )
36166           && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
36167     }
36168 
operator !=VULKAN_HPP_NAMESPACE::HdrMetadataEXT36169     bool operator!=( HdrMetadataEXT const& rhs ) const
36170     {
36171       return !operator==( rhs );
36172     }
36173 
36174   private:
36175     using layout::HdrMetadataEXT::sType;
36176   };
36177   static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
36178   static_assert( std::is_standard_layout<HdrMetadataEXT>::value, "struct wrapper is not a standard layout!" );
36179 
36180   namespace layout
36181   {
36182     struct HeadlessSurfaceCreateInfoEXT
36183     {
36184     protected:
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::HeadlessSurfaceCreateInfoEXT36185       HeadlessSurfaceCreateInfoEXT( vk::HeadlessSurfaceCreateFlagsEXT flags_ = vk::HeadlessSurfaceCreateFlagsEXT() )
36186         : flags( flags_ )
36187       {}
36188 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::HeadlessSurfaceCreateInfoEXT36189       HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs )
36190       {
36191         *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>(this) = rhs;
36192       }
36193 
operator =VULKAN_HPP_NAMESPACE::layout::HeadlessSurfaceCreateInfoEXT36194       HeadlessSurfaceCreateInfoEXT& operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs )
36195       {
36196         *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>(this) = rhs;
36197         return *this;
36198       }
36199 
36200     public:
36201       vk::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
36202       const void* pNext = nullptr;
36203       vk::HeadlessSurfaceCreateFlagsEXT flags;
36204     };
36205     static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "layout struct and wrapper have different size!" );
36206   }
36207 
36208   struct HeadlessSurfaceCreateInfoEXT : public layout::HeadlessSurfaceCreateInfoEXT
36209   {
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36210     HeadlessSurfaceCreateInfoEXT( vk::HeadlessSurfaceCreateFlagsEXT flags_ = vk::HeadlessSurfaceCreateFlagsEXT() )
36211       : layout::HeadlessSurfaceCreateInfoEXT( flags_ )
36212     {}
36213 
HeadlessSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36214     HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs )
36215       : layout::HeadlessSurfaceCreateInfoEXT( rhs )
36216     {}
36217 
operator =VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36218     HeadlessSurfaceCreateInfoEXT& operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs )
36219     {
36220       *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>(this) = rhs;
36221       return *this;
36222     }
36223 
setPNextVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36224     HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ )
36225     {
36226       pNext = pNext_;
36227       return *this;
36228     }
36229 
setFlagsVULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36230     HeadlessSurfaceCreateInfoEXT & setFlags( vk::HeadlessSurfaceCreateFlagsEXT flags_ )
36231     {
36232       flags = flags_;
36233       return *this;
36234     }
36235 
operator VkHeadlessSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36236     operator VkHeadlessSurfaceCreateInfoEXT const&() const
36237     {
36238       return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
36239     }
36240 
operator VkHeadlessSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36241     operator VkHeadlessSurfaceCreateInfoEXT &()
36242     {
36243       return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
36244     }
36245 
operator ==VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36246     bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const
36247     {
36248       return ( sType == rhs.sType )
36249           && ( pNext == rhs.pNext )
36250           && ( flags == rhs.flags );
36251     }
36252 
operator !=VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT36253     bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const
36254     {
36255       return !operator==( rhs );
36256     }
36257 
36258   private:
36259     using layout::HeadlessSurfaceCreateInfoEXT::sType;
36260   };
36261   static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
36262   static_assert( std::is_standard_layout<HeadlessSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
36263 
36264 #ifdef VK_USE_PLATFORM_IOS_MVK
36265 
36266   namespace layout
36267   {
36268     struct IOSSurfaceCreateInfoMVK
36269     {
36270     protected:
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::layout::IOSSurfaceCreateInfoMVK36271       IOSSurfaceCreateInfoMVK( vk::IOSSurfaceCreateFlagsMVK flags_ = vk::IOSSurfaceCreateFlagsMVK(),
36272                                const void* pView_ = nullptr )
36273         : flags( flags_ )
36274         , pView( pView_ )
36275       {}
36276 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::layout::IOSSurfaceCreateInfoMVK36277       IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs )
36278       {
36279         *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this) = rhs;
36280       }
36281 
operator =VULKAN_HPP_NAMESPACE::layout::IOSSurfaceCreateInfoMVK36282       IOSSurfaceCreateInfoMVK& operator=( VkIOSSurfaceCreateInfoMVK const & rhs )
36283       {
36284         *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this) = rhs;
36285         return *this;
36286       }
36287 
36288     public:
36289       vk::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
36290       const void* pNext = nullptr;
36291       vk::IOSSurfaceCreateFlagsMVK flags;
36292       const void* pView;
36293     };
36294     static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "layout struct and wrapper have different size!" );
36295   }
36296 
36297   struct IOSSurfaceCreateInfoMVK : public layout::IOSSurfaceCreateInfoMVK
36298   {
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36299     IOSSurfaceCreateInfoMVK( vk::IOSSurfaceCreateFlagsMVK flags_ = vk::IOSSurfaceCreateFlagsMVK(),
36300                              const void* pView_ = nullptr )
36301       : layout::IOSSurfaceCreateInfoMVK( flags_, pView_ )
36302     {}
36303 
IOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36304     IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs )
36305       : layout::IOSSurfaceCreateInfoMVK( rhs )
36306     {}
36307 
operator =VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36308     IOSSurfaceCreateInfoMVK& operator=( VkIOSSurfaceCreateInfoMVK const & rhs )
36309     {
36310       *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this) = rhs;
36311       return *this;
36312     }
36313 
setPNextVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36314     IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ )
36315     {
36316       pNext = pNext_;
36317       return *this;
36318     }
36319 
setFlagsVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36320     IOSSurfaceCreateInfoMVK & setFlags( vk::IOSSurfaceCreateFlagsMVK flags_ )
36321     {
36322       flags = flags_;
36323       return *this;
36324     }
36325 
setPViewVULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36326     IOSSurfaceCreateInfoMVK & setPView( const void* pView_ )
36327     {
36328       pView = pView_;
36329       return *this;
36330     }
36331 
operator VkIOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36332     operator VkIOSSurfaceCreateInfoMVK const&() const
36333     {
36334       return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
36335     }
36336 
operator VkIOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36337     operator VkIOSSurfaceCreateInfoMVK &()
36338     {
36339       return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
36340     }
36341 
operator ==VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36342     bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const
36343     {
36344       return ( sType == rhs.sType )
36345           && ( pNext == rhs.pNext )
36346           && ( flags == rhs.flags )
36347           && ( pView == rhs.pView );
36348     }
36349 
operator !=VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK36350     bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const
36351     {
36352       return !operator==( rhs );
36353     }
36354 
36355   private:
36356     using layout::IOSSurfaceCreateInfoMVK::sType;
36357   };
36358   static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
36359   static_assert( std::is_standard_layout<IOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
36360 #endif /*VK_USE_PLATFORM_IOS_MVK*/
36361 
36362   struct ImageBlit
36363   {
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit36364     ImageBlit( vk::ImageSubresourceLayers srcSubresource_ = vk::ImageSubresourceLayers(),
36365                std::array<vk::Offset3D,2> const& srcOffsets_ = { { vk::Offset3D() } },
36366                vk::ImageSubresourceLayers dstSubresource_ = vk::ImageSubresourceLayers(),
36367                std::array<vk::Offset3D,2> const& dstOffsets_ = { { vk::Offset3D() } } )
36368         : srcSubresource( srcSubresource_ )
36369         , dstSubresource( dstSubresource_ )
36370     {
36371         memcpy( &srcOffsets, srcOffsets_.data(), 2 * sizeof( vk::Offset3D ) );
36372         memcpy( &dstOffsets, dstOffsets_.data(), 2 * sizeof( vk::Offset3D ) );
36373 
36374     }
36375 
ImageBlitVULKAN_HPP_NAMESPACE::ImageBlit36376     ImageBlit( VkImageBlit const & rhs )
36377     {
36378       *reinterpret_cast<VkImageBlit*>(this) = rhs;
36379     }
36380 
operator =VULKAN_HPP_NAMESPACE::ImageBlit36381     ImageBlit& operator=( VkImageBlit const & rhs )
36382     {
36383       *reinterpret_cast<VkImageBlit*>(this) = rhs;
36384       return *this;
36385     }
36386 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageBlit36387     ImageBlit & setSrcSubresource( vk::ImageSubresourceLayers srcSubresource_ )
36388     {
36389       srcSubresource = srcSubresource_;
36390       return *this;
36391     }
36392 
setSrcOffsetsVULKAN_HPP_NAMESPACE::ImageBlit36393     ImageBlit & setSrcOffsets( std::array<vk::Offset3D,2> srcOffsets_ )
36394     {
36395       memcpy( srcOffsets, srcOffsets_.data(), 2 * sizeof( vk::Offset3D ) );
36396       return *this;
36397     }
36398 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageBlit36399     ImageBlit & setDstSubresource( vk::ImageSubresourceLayers dstSubresource_ )
36400     {
36401       dstSubresource = dstSubresource_;
36402       return *this;
36403     }
36404 
setDstOffsetsVULKAN_HPP_NAMESPACE::ImageBlit36405     ImageBlit & setDstOffsets( std::array<vk::Offset3D,2> dstOffsets_ )
36406     {
36407       memcpy( dstOffsets, dstOffsets_.data(), 2 * sizeof( vk::Offset3D ) );
36408       return *this;
36409     }
36410 
operator VkImageBlit const&VULKAN_HPP_NAMESPACE::ImageBlit36411     operator VkImageBlit const&() const
36412     {
36413       return *reinterpret_cast<const VkImageBlit*>( this );
36414     }
36415 
operator VkImageBlit&VULKAN_HPP_NAMESPACE::ImageBlit36416     operator VkImageBlit &()
36417     {
36418       return *reinterpret_cast<VkImageBlit*>( this );
36419     }
36420 
operator ==VULKAN_HPP_NAMESPACE::ImageBlit36421     bool operator==( ImageBlit const& rhs ) const
36422     {
36423       return ( srcSubresource == rhs.srcSubresource )
36424           && ( memcmp( srcOffsets, rhs.srcOffsets, 2 * sizeof( vk::Offset3D ) ) == 0 )
36425           && ( dstSubresource == rhs.dstSubresource )
36426           && ( memcmp( dstOffsets, rhs.dstOffsets, 2 * sizeof( vk::Offset3D ) ) == 0 );
36427     }
36428 
operator !=VULKAN_HPP_NAMESPACE::ImageBlit36429     bool operator!=( ImageBlit const& rhs ) const
36430     {
36431       return !operator==( rhs );
36432     }
36433 
36434   public:
36435     vk::ImageSubresourceLayers srcSubresource;
36436     vk::Offset3D srcOffsets[2];
36437     vk::ImageSubresourceLayers dstSubresource;
36438     vk::Offset3D dstOffsets[2];
36439   };
36440   static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
36441   static_assert( std::is_standard_layout<ImageBlit>::value, "struct wrapper is not a standard layout!" );
36442 
36443   struct ImageCopy
36444   {
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy36445     ImageCopy( vk::ImageSubresourceLayers srcSubresource_ = vk::ImageSubresourceLayers(),
36446                vk::Offset3D srcOffset_ = vk::Offset3D(),
36447                vk::ImageSubresourceLayers dstSubresource_ = vk::ImageSubresourceLayers(),
36448                vk::Offset3D dstOffset_ = vk::Offset3D(),
36449                vk::Extent3D extent_ = vk::Extent3D() )
36450         : srcSubresource( srcSubresource_ )
36451         , srcOffset( srcOffset_ )
36452         , dstSubresource( dstSubresource_ )
36453         , dstOffset( dstOffset_ )
36454         , extent( extent_ )
36455     {}
36456 
ImageCopyVULKAN_HPP_NAMESPACE::ImageCopy36457     ImageCopy( VkImageCopy const & rhs )
36458     {
36459       *reinterpret_cast<VkImageCopy*>(this) = rhs;
36460     }
36461 
operator =VULKAN_HPP_NAMESPACE::ImageCopy36462     ImageCopy& operator=( VkImageCopy const & rhs )
36463     {
36464       *reinterpret_cast<VkImageCopy*>(this) = rhs;
36465       return *this;
36466     }
36467 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageCopy36468     ImageCopy & setSrcSubresource( vk::ImageSubresourceLayers srcSubresource_ )
36469     {
36470       srcSubresource = srcSubresource_;
36471       return *this;
36472     }
36473 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageCopy36474     ImageCopy & setSrcOffset( vk::Offset3D srcOffset_ )
36475     {
36476       srcOffset = srcOffset_;
36477       return *this;
36478     }
36479 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageCopy36480     ImageCopy & setDstSubresource( vk::ImageSubresourceLayers dstSubresource_ )
36481     {
36482       dstSubresource = dstSubresource_;
36483       return *this;
36484     }
36485 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageCopy36486     ImageCopy & setDstOffset( vk::Offset3D dstOffset_ )
36487     {
36488       dstOffset = dstOffset_;
36489       return *this;
36490     }
36491 
setExtentVULKAN_HPP_NAMESPACE::ImageCopy36492     ImageCopy & setExtent( vk::Extent3D extent_ )
36493     {
36494       extent = extent_;
36495       return *this;
36496     }
36497 
operator VkImageCopy const&VULKAN_HPP_NAMESPACE::ImageCopy36498     operator VkImageCopy const&() const
36499     {
36500       return *reinterpret_cast<const VkImageCopy*>( this );
36501     }
36502 
operator VkImageCopy&VULKAN_HPP_NAMESPACE::ImageCopy36503     operator VkImageCopy &()
36504     {
36505       return *reinterpret_cast<VkImageCopy*>( this );
36506     }
36507 
operator ==VULKAN_HPP_NAMESPACE::ImageCopy36508     bool operator==( ImageCopy const& rhs ) const
36509     {
36510       return ( srcSubresource == rhs.srcSubresource )
36511           && ( srcOffset == rhs.srcOffset )
36512           && ( dstSubresource == rhs.dstSubresource )
36513           && ( dstOffset == rhs.dstOffset )
36514           && ( extent == rhs.extent );
36515     }
36516 
operator !=VULKAN_HPP_NAMESPACE::ImageCopy36517     bool operator!=( ImageCopy const& rhs ) const
36518     {
36519       return !operator==( rhs );
36520     }
36521 
36522   public:
36523     vk::ImageSubresourceLayers srcSubresource;
36524     vk::Offset3D srcOffset;
36525     vk::ImageSubresourceLayers dstSubresource;
36526     vk::Offset3D dstOffset;
36527     vk::Extent3D extent;
36528   };
36529   static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
36530   static_assert( std::is_standard_layout<ImageCopy>::value, "struct wrapper is not a standard layout!" );
36531 
36532   namespace layout
36533   {
36534     struct ImageCreateInfo
36535     {
36536     protected:
ImageCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageCreateInfo36537       ImageCreateInfo( vk::ImageCreateFlags flags_ = vk::ImageCreateFlags(),
36538                        vk::ImageType imageType_ = vk::ImageType::e1D,
36539                        vk::Format format_ = vk::Format::eUndefined,
36540                        vk::Extent3D extent_ = vk::Extent3D(),
36541                        uint32_t mipLevels_ = 0,
36542                        uint32_t arrayLayers_ = 0,
36543                        vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
36544                        vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal,
36545                        vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
36546                        vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
36547                        uint32_t queueFamilyIndexCount_ = 0,
36548                        const uint32_t* pQueueFamilyIndices_ = nullptr,
36549                        vk::ImageLayout initialLayout_ = vk::ImageLayout::eUndefined )
36550         : flags( flags_ )
36551         , imageType( imageType_ )
36552         , format( format_ )
36553         , extent( extent_ )
36554         , mipLevels( mipLevels_ )
36555         , arrayLayers( arrayLayers_ )
36556         , samples( samples_ )
36557         , tiling( tiling_ )
36558         , usage( usage_ )
36559         , sharingMode( sharingMode_ )
36560         , queueFamilyIndexCount( queueFamilyIndexCount_ )
36561         , pQueueFamilyIndices( pQueueFamilyIndices_ )
36562         , initialLayout( initialLayout_ )
36563       {}
36564 
ImageCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageCreateInfo36565       ImageCreateInfo( VkImageCreateInfo const & rhs )
36566       {
36567         *reinterpret_cast<VkImageCreateInfo*>(this) = rhs;
36568       }
36569 
operator =VULKAN_HPP_NAMESPACE::layout::ImageCreateInfo36570       ImageCreateInfo& operator=( VkImageCreateInfo const & rhs )
36571       {
36572         *reinterpret_cast<VkImageCreateInfo*>(this) = rhs;
36573         return *this;
36574       }
36575 
36576     public:
36577       vk::StructureType sType = StructureType::eImageCreateInfo;
36578       const void* pNext = nullptr;
36579       vk::ImageCreateFlags flags;
36580       vk::ImageType imageType;
36581       vk::Format format;
36582       vk::Extent3D extent;
36583       uint32_t mipLevels;
36584       uint32_t arrayLayers;
36585       vk::SampleCountFlagBits samples;
36586       vk::ImageTiling tiling;
36587       vk::ImageUsageFlags usage;
36588       vk::SharingMode sharingMode;
36589       uint32_t queueFamilyIndexCount;
36590       const uint32_t* pQueueFamilyIndices;
36591       vk::ImageLayout initialLayout;
36592     };
36593     static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "layout struct and wrapper have different size!" );
36594   }
36595 
36596   struct ImageCreateInfo : public layout::ImageCreateInfo
36597   {
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo36598     ImageCreateInfo( vk::ImageCreateFlags flags_ = vk::ImageCreateFlags(),
36599                      vk::ImageType imageType_ = vk::ImageType::e1D,
36600                      vk::Format format_ = vk::Format::eUndefined,
36601                      vk::Extent3D extent_ = vk::Extent3D(),
36602                      uint32_t mipLevels_ = 0,
36603                      uint32_t arrayLayers_ = 0,
36604                      vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
36605                      vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal,
36606                      vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
36607                      vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
36608                      uint32_t queueFamilyIndexCount_ = 0,
36609                      const uint32_t* pQueueFamilyIndices_ = nullptr,
36610                      vk::ImageLayout initialLayout_ = vk::ImageLayout::eUndefined )
36611       : layout::ImageCreateInfo( flags_, imageType_, format_, extent_, mipLevels_, arrayLayers_, samples_, tiling_, usage_, sharingMode_, queueFamilyIndexCount_, pQueueFamilyIndices_, initialLayout_ )
36612     {}
36613 
ImageCreateInfoVULKAN_HPP_NAMESPACE::ImageCreateInfo36614     ImageCreateInfo( VkImageCreateInfo const & rhs )
36615       : layout::ImageCreateInfo( rhs )
36616     {}
36617 
operator =VULKAN_HPP_NAMESPACE::ImageCreateInfo36618     ImageCreateInfo& operator=( VkImageCreateInfo const & rhs )
36619     {
36620       *reinterpret_cast<VkImageCreateInfo*>(this) = rhs;
36621       return *this;
36622     }
36623 
setPNextVULKAN_HPP_NAMESPACE::ImageCreateInfo36624     ImageCreateInfo & setPNext( const void* pNext_ )
36625     {
36626       pNext = pNext_;
36627       return *this;
36628     }
36629 
setFlagsVULKAN_HPP_NAMESPACE::ImageCreateInfo36630     ImageCreateInfo & setFlags( vk::ImageCreateFlags flags_ )
36631     {
36632       flags = flags_;
36633       return *this;
36634     }
36635 
setImageTypeVULKAN_HPP_NAMESPACE::ImageCreateInfo36636     ImageCreateInfo & setImageType( vk::ImageType imageType_ )
36637     {
36638       imageType = imageType_;
36639       return *this;
36640     }
36641 
setFormatVULKAN_HPP_NAMESPACE::ImageCreateInfo36642     ImageCreateInfo & setFormat( vk::Format format_ )
36643     {
36644       format = format_;
36645       return *this;
36646     }
36647 
setExtentVULKAN_HPP_NAMESPACE::ImageCreateInfo36648     ImageCreateInfo & setExtent( vk::Extent3D extent_ )
36649     {
36650       extent = extent_;
36651       return *this;
36652     }
36653 
setMipLevelsVULKAN_HPP_NAMESPACE::ImageCreateInfo36654     ImageCreateInfo & setMipLevels( uint32_t mipLevels_ )
36655     {
36656       mipLevels = mipLevels_;
36657       return *this;
36658     }
36659 
setArrayLayersVULKAN_HPP_NAMESPACE::ImageCreateInfo36660     ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ )
36661     {
36662       arrayLayers = arrayLayers_;
36663       return *this;
36664     }
36665 
setSamplesVULKAN_HPP_NAMESPACE::ImageCreateInfo36666     ImageCreateInfo & setSamples( vk::SampleCountFlagBits samples_ )
36667     {
36668       samples = samples_;
36669       return *this;
36670     }
36671 
setTilingVULKAN_HPP_NAMESPACE::ImageCreateInfo36672     ImageCreateInfo & setTiling( vk::ImageTiling tiling_ )
36673     {
36674       tiling = tiling_;
36675       return *this;
36676     }
36677 
setUsageVULKAN_HPP_NAMESPACE::ImageCreateInfo36678     ImageCreateInfo & setUsage( vk::ImageUsageFlags usage_ )
36679     {
36680       usage = usage_;
36681       return *this;
36682     }
36683 
setSharingModeVULKAN_HPP_NAMESPACE::ImageCreateInfo36684     ImageCreateInfo & setSharingMode( vk::SharingMode sharingMode_ )
36685     {
36686       sharingMode = sharingMode_;
36687       return *this;
36688     }
36689 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::ImageCreateInfo36690     ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
36691     {
36692       queueFamilyIndexCount = queueFamilyIndexCount_;
36693       return *this;
36694     }
36695 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::ImageCreateInfo36696     ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
36697     {
36698       pQueueFamilyIndices = pQueueFamilyIndices_;
36699       return *this;
36700     }
36701 
setInitialLayoutVULKAN_HPP_NAMESPACE::ImageCreateInfo36702     ImageCreateInfo & setInitialLayout( vk::ImageLayout initialLayout_ )
36703     {
36704       initialLayout = initialLayout_;
36705       return *this;
36706     }
36707 
operator VkImageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageCreateInfo36708     operator VkImageCreateInfo const&() const
36709     {
36710       return *reinterpret_cast<const VkImageCreateInfo*>( this );
36711     }
36712 
operator VkImageCreateInfo&VULKAN_HPP_NAMESPACE::ImageCreateInfo36713     operator VkImageCreateInfo &()
36714     {
36715       return *reinterpret_cast<VkImageCreateInfo*>( this );
36716     }
36717 
operator ==VULKAN_HPP_NAMESPACE::ImageCreateInfo36718     bool operator==( ImageCreateInfo const& rhs ) const
36719     {
36720       return ( sType == rhs.sType )
36721           && ( pNext == rhs.pNext )
36722           && ( flags == rhs.flags )
36723           && ( imageType == rhs.imageType )
36724           && ( format == rhs.format )
36725           && ( extent == rhs.extent )
36726           && ( mipLevels == rhs.mipLevels )
36727           && ( arrayLayers == rhs.arrayLayers )
36728           && ( samples == rhs.samples )
36729           && ( tiling == rhs.tiling )
36730           && ( usage == rhs.usage )
36731           && ( sharingMode == rhs.sharingMode )
36732           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
36733           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
36734           && ( initialLayout == rhs.initialLayout );
36735     }
36736 
operator !=VULKAN_HPP_NAMESPACE::ImageCreateInfo36737     bool operator!=( ImageCreateInfo const& rhs ) const
36738     {
36739       return !operator==( rhs );
36740     }
36741 
36742   private:
36743     using layout::ImageCreateInfo::sType;
36744   };
36745   static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
36746   static_assert( std::is_standard_layout<ImageCreateInfo>::value, "struct wrapper is not a standard layout!" );
36747 
36748   struct SubresourceLayout
36749   {
operator VkSubresourceLayout const&VULKAN_HPP_NAMESPACE::SubresourceLayout36750     operator VkSubresourceLayout const&() const
36751     {
36752       return *reinterpret_cast<const VkSubresourceLayout*>( this );
36753     }
36754 
operator VkSubresourceLayout&VULKAN_HPP_NAMESPACE::SubresourceLayout36755     operator VkSubresourceLayout &()
36756     {
36757       return *reinterpret_cast<VkSubresourceLayout*>( this );
36758     }
36759 
operator ==VULKAN_HPP_NAMESPACE::SubresourceLayout36760     bool operator==( SubresourceLayout const& rhs ) const
36761     {
36762       return ( offset == rhs.offset )
36763           && ( size == rhs.size )
36764           && ( rowPitch == rhs.rowPitch )
36765           && ( arrayPitch == rhs.arrayPitch )
36766           && ( depthPitch == rhs.depthPitch );
36767     }
36768 
operator !=VULKAN_HPP_NAMESPACE::SubresourceLayout36769     bool operator!=( SubresourceLayout const& rhs ) const
36770     {
36771       return !operator==( rhs );
36772     }
36773 
36774   public:
36775     vk::DeviceSize offset;
36776     vk::DeviceSize size;
36777     vk::DeviceSize rowPitch;
36778     vk::DeviceSize arrayPitch;
36779     vk::DeviceSize depthPitch;
36780   };
36781   static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
36782   static_assert( std::is_standard_layout<SubresourceLayout>::value, "struct wrapper is not a standard layout!" );
36783 
36784   namespace layout
36785   {
36786     struct ImageDrmFormatModifierExplicitCreateInfoEXT
36787     {
36788     protected:
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierExplicitCreateInfoEXT36789       ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = 0,
36790                                                    uint32_t drmFormatModifierPlaneCount_ = 0,
36791                                                    const vk::SubresourceLayout* pPlaneLayouts_ = nullptr )
36792         : drmFormatModifier( drmFormatModifier_ )
36793         , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
36794         , pPlaneLayouts( pPlaneLayouts_ )
36795       {}
36796 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierExplicitCreateInfoEXT36797       ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
36798       {
36799         *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(this) = rhs;
36800       }
36801 
operator =VULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierExplicitCreateInfoEXT36802       ImageDrmFormatModifierExplicitCreateInfoEXT& operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
36803       {
36804         *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(this) = rhs;
36805         return *this;
36806       }
36807 
36808     public:
36809       vk::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
36810       const void* pNext = nullptr;
36811       uint64_t drmFormatModifier;
36812       uint32_t drmFormatModifierPlaneCount;
36813       const vk::SubresourceLayout* pPlaneLayouts;
36814     };
36815     static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "layout struct and wrapper have different size!" );
36816   }
36817 
36818   struct ImageDrmFormatModifierExplicitCreateInfoEXT : public layout::ImageDrmFormatModifierExplicitCreateInfoEXT
36819   {
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36820     ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = 0,
36821                                                  uint32_t drmFormatModifierPlaneCount_ = 0,
36822                                                  const vk::SubresourceLayout* pPlaneLayouts_ = nullptr )
36823       : layout::ImageDrmFormatModifierExplicitCreateInfoEXT( drmFormatModifier_, drmFormatModifierPlaneCount_, pPlaneLayouts_ )
36824     {}
36825 
ImageDrmFormatModifierExplicitCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36826     ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
36827       : layout::ImageDrmFormatModifierExplicitCreateInfoEXT( rhs )
36828     {}
36829 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36830     ImageDrmFormatModifierExplicitCreateInfoEXT& operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
36831     {
36832       *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(this) = rhs;
36833       return *this;
36834     }
36835 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36836     ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ )
36837     {
36838       pNext = pNext_;
36839       return *this;
36840     }
36841 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36842     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ )
36843     {
36844       drmFormatModifier = drmFormatModifier_;
36845       return *this;
36846     }
36847 
setDrmFormatModifierPlaneCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36848     ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ )
36849     {
36850       drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
36851       return *this;
36852     }
36853 
setPPlaneLayoutsVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36854     ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const vk::SubresourceLayout* pPlaneLayouts_ )
36855     {
36856       pPlaneLayouts = pPlaneLayouts_;
36857       return *this;
36858     }
36859 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36860     operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const
36861     {
36862       return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
36863     }
36864 
operator VkImageDrmFormatModifierExplicitCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36865     operator VkImageDrmFormatModifierExplicitCreateInfoEXT &()
36866     {
36867       return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
36868     }
36869 
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36870     bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const
36871     {
36872       return ( sType == rhs.sType )
36873           && ( pNext == rhs.pNext )
36874           && ( drmFormatModifier == rhs.drmFormatModifier )
36875           && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
36876           && ( pPlaneLayouts == rhs.pPlaneLayouts );
36877     }
36878 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT36879     bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const
36880     {
36881       return !operator==( rhs );
36882     }
36883 
36884   private:
36885     using layout::ImageDrmFormatModifierExplicitCreateInfoEXT::sType;
36886   };
36887   static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
36888   static_assert( std::is_standard_layout<ImageDrmFormatModifierExplicitCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
36889 
36890   namespace layout
36891   {
36892     struct ImageDrmFormatModifierListCreateInfoEXT
36893     {
36894     protected:
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierListCreateInfoEXT36895       ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = 0,
36896                                                const uint64_t* pDrmFormatModifiers_ = nullptr )
36897         : drmFormatModifierCount( drmFormatModifierCount_ )
36898         , pDrmFormatModifiers( pDrmFormatModifiers_ )
36899       {}
36900 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierListCreateInfoEXT36901       ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
36902       {
36903         *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(this) = rhs;
36904       }
36905 
operator =VULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierListCreateInfoEXT36906       ImageDrmFormatModifierListCreateInfoEXT& operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
36907       {
36908         *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(this) = rhs;
36909         return *this;
36910       }
36911 
36912     public:
36913       vk::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
36914       const void* pNext = nullptr;
36915       uint32_t drmFormatModifierCount;
36916       const uint64_t* pDrmFormatModifiers;
36917     };
36918     static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "layout struct and wrapper have different size!" );
36919   }
36920 
36921   struct ImageDrmFormatModifierListCreateInfoEXT : public layout::ImageDrmFormatModifierListCreateInfoEXT
36922   {
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36923     ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = 0,
36924                                              const uint64_t* pDrmFormatModifiers_ = nullptr )
36925       : layout::ImageDrmFormatModifierListCreateInfoEXT( drmFormatModifierCount_, pDrmFormatModifiers_ )
36926     {}
36927 
ImageDrmFormatModifierListCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36928     ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
36929       : layout::ImageDrmFormatModifierListCreateInfoEXT( rhs )
36930     {}
36931 
operator =VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36932     ImageDrmFormatModifierListCreateInfoEXT& operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
36933     {
36934       *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(this) = rhs;
36935       return *this;
36936     }
36937 
setPNextVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36938     ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ )
36939     {
36940       pNext = pNext_;
36941       return *this;
36942     }
36943 
setDrmFormatModifierCountVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36944     ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ )
36945     {
36946       drmFormatModifierCount = drmFormatModifierCount_;
36947       return *this;
36948     }
36949 
setPDrmFormatModifiersVULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36950     ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ )
36951     {
36952       pDrmFormatModifiers = pDrmFormatModifiers_;
36953       return *this;
36954     }
36955 
operator VkImageDrmFormatModifierListCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36956     operator VkImageDrmFormatModifierListCreateInfoEXT const&() const
36957     {
36958       return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
36959     }
36960 
operator VkImageDrmFormatModifierListCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36961     operator VkImageDrmFormatModifierListCreateInfoEXT &()
36962     {
36963       return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
36964     }
36965 
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36966     bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const
36967     {
36968       return ( sType == rhs.sType )
36969           && ( pNext == rhs.pNext )
36970           && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
36971           && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
36972     }
36973 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT36974     bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const
36975     {
36976       return !operator==( rhs );
36977     }
36978 
36979   private:
36980     using layout::ImageDrmFormatModifierListCreateInfoEXT::sType;
36981   };
36982   static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
36983   static_assert( std::is_standard_layout<ImageDrmFormatModifierListCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
36984 
36985   namespace layout
36986   {
36987     struct ImageDrmFormatModifierPropertiesEXT
36988     {
36989     protected:
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierPropertiesEXT36990       ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = 0 )
36991         : drmFormatModifier( drmFormatModifier_ )
36992       {}
36993 
ImageDrmFormatModifierPropertiesEXTVULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierPropertiesEXT36994       ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs )
36995       {
36996         *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>(this) = rhs;
36997       }
36998 
operator =VULKAN_HPP_NAMESPACE::layout::ImageDrmFormatModifierPropertiesEXT36999       ImageDrmFormatModifierPropertiesEXT& operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs )
37000       {
37001         *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>(this) = rhs;
37002         return *this;
37003       }
37004 
37005     public:
37006       vk::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
37007       void* pNext = nullptr;
37008       uint64_t drmFormatModifier;
37009     };
37010     static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "layout struct and wrapper have different size!" );
37011   }
37012 
37013   struct ImageDrmFormatModifierPropertiesEXT : public layout::ImageDrmFormatModifierPropertiesEXT
37014   {
operator VkImageDrmFormatModifierPropertiesEXT const&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT37015     operator VkImageDrmFormatModifierPropertiesEXT const&() const
37016     {
37017       return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
37018     }
37019 
operator VkImageDrmFormatModifierPropertiesEXT&VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT37020     operator VkImageDrmFormatModifierPropertiesEXT &()
37021     {
37022       return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
37023     }
37024 
operator ==VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT37025     bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const
37026     {
37027       return ( sType == rhs.sType )
37028           && ( pNext == rhs.pNext )
37029           && ( drmFormatModifier == rhs.drmFormatModifier );
37030     }
37031 
operator !=VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT37032     bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const
37033     {
37034       return !operator==( rhs );
37035     }
37036 
37037   private:
37038     using layout::ImageDrmFormatModifierPropertiesEXT::sType;
37039   };
37040   static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
37041   static_assert( std::is_standard_layout<ImageDrmFormatModifierPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
37042 
37043   namespace layout
37044   {
37045     struct ImageFormatListCreateInfoKHR
37046     {
37047     protected:
ImageFormatListCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::ImageFormatListCreateInfoKHR37048       ImageFormatListCreateInfoKHR( uint32_t viewFormatCount_ = 0,
37049                                     const vk::Format* pViewFormats_ = nullptr )
37050         : viewFormatCount( viewFormatCount_ )
37051         , pViewFormats( pViewFormats_ )
37052       {}
37053 
ImageFormatListCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::ImageFormatListCreateInfoKHR37054       ImageFormatListCreateInfoKHR( VkImageFormatListCreateInfoKHR const & rhs )
37055       {
37056         *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this) = rhs;
37057       }
37058 
operator =VULKAN_HPP_NAMESPACE::layout::ImageFormatListCreateInfoKHR37059       ImageFormatListCreateInfoKHR& operator=( VkImageFormatListCreateInfoKHR const & rhs )
37060       {
37061         *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this) = rhs;
37062         return *this;
37063       }
37064 
37065     public:
37066       vk::StructureType sType = StructureType::eImageFormatListCreateInfoKHR;
37067       const void* pNext = nullptr;
37068       uint32_t viewFormatCount;
37069       const vk::Format* pViewFormats;
37070     };
37071     static_assert( sizeof( ImageFormatListCreateInfoKHR ) == sizeof( VkImageFormatListCreateInfoKHR ), "layout struct and wrapper have different size!" );
37072   }
37073 
37074   struct ImageFormatListCreateInfoKHR : public layout::ImageFormatListCreateInfoKHR
37075   {
ImageFormatListCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37076     ImageFormatListCreateInfoKHR( uint32_t viewFormatCount_ = 0,
37077                                   const vk::Format* pViewFormats_ = nullptr )
37078       : layout::ImageFormatListCreateInfoKHR( viewFormatCount_, pViewFormats_ )
37079     {}
37080 
ImageFormatListCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37081     ImageFormatListCreateInfoKHR( VkImageFormatListCreateInfoKHR const & rhs )
37082       : layout::ImageFormatListCreateInfoKHR( rhs )
37083     {}
37084 
operator =VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37085     ImageFormatListCreateInfoKHR& operator=( VkImageFormatListCreateInfoKHR const & rhs )
37086     {
37087       *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this) = rhs;
37088       return *this;
37089     }
37090 
setPNextVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37091     ImageFormatListCreateInfoKHR & setPNext( const void* pNext_ )
37092     {
37093       pNext = pNext_;
37094       return *this;
37095     }
37096 
setViewFormatCountVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37097     ImageFormatListCreateInfoKHR & setViewFormatCount( uint32_t viewFormatCount_ )
37098     {
37099       viewFormatCount = viewFormatCount_;
37100       return *this;
37101     }
37102 
setPViewFormatsVULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37103     ImageFormatListCreateInfoKHR & setPViewFormats( const vk::Format* pViewFormats_ )
37104     {
37105       pViewFormats = pViewFormats_;
37106       return *this;
37107     }
37108 
operator VkImageFormatListCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37109     operator VkImageFormatListCreateInfoKHR const&() const
37110     {
37111       return *reinterpret_cast<const VkImageFormatListCreateInfoKHR*>( this );
37112     }
37113 
operator VkImageFormatListCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37114     operator VkImageFormatListCreateInfoKHR &()
37115     {
37116       return *reinterpret_cast<VkImageFormatListCreateInfoKHR*>( this );
37117     }
37118 
operator ==VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37119     bool operator==( ImageFormatListCreateInfoKHR const& rhs ) const
37120     {
37121       return ( sType == rhs.sType )
37122           && ( pNext == rhs.pNext )
37123           && ( viewFormatCount == rhs.viewFormatCount )
37124           && ( pViewFormats == rhs.pViewFormats );
37125     }
37126 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfoKHR37127     bool operator!=( ImageFormatListCreateInfoKHR const& rhs ) const
37128     {
37129       return !operator==( rhs );
37130     }
37131 
37132   private:
37133     using layout::ImageFormatListCreateInfoKHR::sType;
37134   };
37135   static_assert( sizeof( ImageFormatListCreateInfoKHR ) == sizeof( VkImageFormatListCreateInfoKHR ), "struct and wrapper have different size!" );
37136   static_assert( std::is_standard_layout<ImageFormatListCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
37137 
37138   namespace layout
37139   {
37140     struct ImageFormatProperties2
37141     {
37142     protected:
ImageFormatProperties2VULKAN_HPP_NAMESPACE::layout::ImageFormatProperties237143       ImageFormatProperties2( vk::ImageFormatProperties imageFormatProperties_ = vk::ImageFormatProperties() )
37144         : imageFormatProperties( imageFormatProperties_ )
37145       {}
37146 
ImageFormatProperties2VULKAN_HPP_NAMESPACE::layout::ImageFormatProperties237147       ImageFormatProperties2( VkImageFormatProperties2 const & rhs )
37148       {
37149         *reinterpret_cast<VkImageFormatProperties2*>(this) = rhs;
37150       }
37151 
operator =VULKAN_HPP_NAMESPACE::layout::ImageFormatProperties237152       ImageFormatProperties2& operator=( VkImageFormatProperties2 const & rhs )
37153       {
37154         *reinterpret_cast<VkImageFormatProperties2*>(this) = rhs;
37155         return *this;
37156       }
37157 
37158     public:
37159       vk::StructureType sType = StructureType::eImageFormatProperties2;
37160       void* pNext = nullptr;
37161       vk::ImageFormatProperties imageFormatProperties;
37162     };
37163     static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "layout struct and wrapper have different size!" );
37164   }
37165 
37166   struct ImageFormatProperties2 : public layout::ImageFormatProperties2
37167   {
operator VkImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::ImageFormatProperties237168     operator VkImageFormatProperties2 const&() const
37169     {
37170       return *reinterpret_cast<const VkImageFormatProperties2*>( this );
37171     }
37172 
operator VkImageFormatProperties2&VULKAN_HPP_NAMESPACE::ImageFormatProperties237173     operator VkImageFormatProperties2 &()
37174     {
37175       return *reinterpret_cast<VkImageFormatProperties2*>( this );
37176     }
37177 
operator ==VULKAN_HPP_NAMESPACE::ImageFormatProperties237178     bool operator==( ImageFormatProperties2 const& rhs ) const
37179     {
37180       return ( sType == rhs.sType )
37181           && ( pNext == rhs.pNext )
37182           && ( imageFormatProperties == rhs.imageFormatProperties );
37183     }
37184 
operator !=VULKAN_HPP_NAMESPACE::ImageFormatProperties237185     bool operator!=( ImageFormatProperties2 const& rhs ) const
37186     {
37187       return !operator==( rhs );
37188     }
37189 
37190   private:
37191     using layout::ImageFormatProperties2::sType;
37192   };
37193   static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
37194   static_assert( std::is_standard_layout<ImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
37195 
37196   struct ImageSubresourceRange
37197   {
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange37198     ImageSubresourceRange( vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags(),
37199                            uint32_t baseMipLevel_ = 0,
37200                            uint32_t levelCount_ = 0,
37201                            uint32_t baseArrayLayer_ = 0,
37202                            uint32_t layerCount_ = 0 )
37203         : aspectMask( aspectMask_ )
37204         , baseMipLevel( baseMipLevel_ )
37205         , levelCount( levelCount_ )
37206         , baseArrayLayer( baseArrayLayer_ )
37207         , layerCount( layerCount_ )
37208     {}
37209 
ImageSubresourceRangeVULKAN_HPP_NAMESPACE::ImageSubresourceRange37210     ImageSubresourceRange( VkImageSubresourceRange const & rhs )
37211     {
37212       *reinterpret_cast<VkImageSubresourceRange*>(this) = rhs;
37213     }
37214 
operator =VULKAN_HPP_NAMESPACE::ImageSubresourceRange37215     ImageSubresourceRange& operator=( VkImageSubresourceRange const & rhs )
37216     {
37217       *reinterpret_cast<VkImageSubresourceRange*>(this) = rhs;
37218       return *this;
37219     }
37220 
setAspectMaskVULKAN_HPP_NAMESPACE::ImageSubresourceRange37221     ImageSubresourceRange & setAspectMask( vk::ImageAspectFlags aspectMask_ )
37222     {
37223       aspectMask = aspectMask_;
37224       return *this;
37225     }
37226 
setBaseMipLevelVULKAN_HPP_NAMESPACE::ImageSubresourceRange37227     ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ )
37228     {
37229       baseMipLevel = baseMipLevel_;
37230       return *this;
37231     }
37232 
setLevelCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange37233     ImageSubresourceRange & setLevelCount( uint32_t levelCount_ )
37234     {
37235       levelCount = levelCount_;
37236       return *this;
37237     }
37238 
setBaseArrayLayerVULKAN_HPP_NAMESPACE::ImageSubresourceRange37239     ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ )
37240     {
37241       baseArrayLayer = baseArrayLayer_;
37242       return *this;
37243     }
37244 
setLayerCountVULKAN_HPP_NAMESPACE::ImageSubresourceRange37245     ImageSubresourceRange & setLayerCount( uint32_t layerCount_ )
37246     {
37247       layerCount = layerCount_;
37248       return *this;
37249     }
37250 
operator VkImageSubresourceRange const&VULKAN_HPP_NAMESPACE::ImageSubresourceRange37251     operator VkImageSubresourceRange const&() const
37252     {
37253       return *reinterpret_cast<const VkImageSubresourceRange*>( this );
37254     }
37255 
operator VkImageSubresourceRange&VULKAN_HPP_NAMESPACE::ImageSubresourceRange37256     operator VkImageSubresourceRange &()
37257     {
37258       return *reinterpret_cast<VkImageSubresourceRange*>( this );
37259     }
37260 
operator ==VULKAN_HPP_NAMESPACE::ImageSubresourceRange37261     bool operator==( ImageSubresourceRange const& rhs ) const
37262     {
37263       return ( aspectMask == rhs.aspectMask )
37264           && ( baseMipLevel == rhs.baseMipLevel )
37265           && ( levelCount == rhs.levelCount )
37266           && ( baseArrayLayer == rhs.baseArrayLayer )
37267           && ( layerCount == rhs.layerCount );
37268     }
37269 
operator !=VULKAN_HPP_NAMESPACE::ImageSubresourceRange37270     bool operator!=( ImageSubresourceRange const& rhs ) const
37271     {
37272       return !operator==( rhs );
37273     }
37274 
37275   public:
37276     vk::ImageAspectFlags aspectMask;
37277     uint32_t baseMipLevel;
37278     uint32_t levelCount;
37279     uint32_t baseArrayLayer;
37280     uint32_t layerCount;
37281   };
37282   static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
37283   static_assert( std::is_standard_layout<ImageSubresourceRange>::value, "struct wrapper is not a standard layout!" );
37284 
37285   namespace layout
37286   {
37287     struct ImageMemoryBarrier
37288     {
37289     protected:
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::layout::ImageMemoryBarrier37290       ImageMemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
37291                           vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
37292                           vk::ImageLayout oldLayout_ = vk::ImageLayout::eUndefined,
37293                           vk::ImageLayout newLayout_ = vk::ImageLayout::eUndefined,
37294                           uint32_t srcQueueFamilyIndex_ = 0,
37295                           uint32_t dstQueueFamilyIndex_ = 0,
37296                           vk::Image image_ = vk::Image(),
37297                           vk::ImageSubresourceRange subresourceRange_ = vk::ImageSubresourceRange() )
37298         : srcAccessMask( srcAccessMask_ )
37299         , dstAccessMask( dstAccessMask_ )
37300         , oldLayout( oldLayout_ )
37301         , newLayout( newLayout_ )
37302         , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
37303         , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
37304         , image( image_ )
37305         , subresourceRange( subresourceRange_ )
37306       {}
37307 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::layout::ImageMemoryBarrier37308       ImageMemoryBarrier( VkImageMemoryBarrier const & rhs )
37309       {
37310         *reinterpret_cast<VkImageMemoryBarrier*>(this) = rhs;
37311       }
37312 
operator =VULKAN_HPP_NAMESPACE::layout::ImageMemoryBarrier37313       ImageMemoryBarrier& operator=( VkImageMemoryBarrier const & rhs )
37314       {
37315         *reinterpret_cast<VkImageMemoryBarrier*>(this) = rhs;
37316         return *this;
37317       }
37318 
37319     public:
37320       vk::StructureType sType = StructureType::eImageMemoryBarrier;
37321       const void* pNext = nullptr;
37322       vk::AccessFlags srcAccessMask;
37323       vk::AccessFlags dstAccessMask;
37324       vk::ImageLayout oldLayout;
37325       vk::ImageLayout newLayout;
37326       uint32_t srcQueueFamilyIndex;
37327       uint32_t dstQueueFamilyIndex;
37328       vk::Image image;
37329       vk::ImageSubresourceRange subresourceRange;
37330     };
37331     static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "layout struct and wrapper have different size!" );
37332   }
37333 
37334   struct ImageMemoryBarrier : public layout::ImageMemoryBarrier
37335   {
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37336     ImageMemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
37337                         vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
37338                         vk::ImageLayout oldLayout_ = vk::ImageLayout::eUndefined,
37339                         vk::ImageLayout newLayout_ = vk::ImageLayout::eUndefined,
37340                         uint32_t srcQueueFamilyIndex_ = 0,
37341                         uint32_t dstQueueFamilyIndex_ = 0,
37342                         vk::Image image_ = vk::Image(),
37343                         vk::ImageSubresourceRange subresourceRange_ = vk::ImageSubresourceRange() )
37344       : layout::ImageMemoryBarrier( srcAccessMask_, dstAccessMask_, oldLayout_, newLayout_, srcQueueFamilyIndex_, dstQueueFamilyIndex_, image_, subresourceRange_ )
37345     {}
37346 
ImageMemoryBarrierVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37347     ImageMemoryBarrier( VkImageMemoryBarrier const & rhs )
37348       : layout::ImageMemoryBarrier( rhs )
37349     {}
37350 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryBarrier37351     ImageMemoryBarrier& operator=( VkImageMemoryBarrier const & rhs )
37352     {
37353       *reinterpret_cast<VkImageMemoryBarrier*>(this) = rhs;
37354       return *this;
37355     }
37356 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37357     ImageMemoryBarrier & setPNext( const void* pNext_ )
37358     {
37359       pNext = pNext_;
37360       return *this;
37361     }
37362 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37363     ImageMemoryBarrier & setSrcAccessMask( vk::AccessFlags srcAccessMask_ )
37364     {
37365       srcAccessMask = srcAccessMask_;
37366       return *this;
37367     }
37368 
setDstAccessMaskVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37369     ImageMemoryBarrier & setDstAccessMask( vk::AccessFlags dstAccessMask_ )
37370     {
37371       dstAccessMask = dstAccessMask_;
37372       return *this;
37373     }
37374 
setOldLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37375     ImageMemoryBarrier & setOldLayout( vk::ImageLayout oldLayout_ )
37376     {
37377       oldLayout = oldLayout_;
37378       return *this;
37379     }
37380 
setNewLayoutVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37381     ImageMemoryBarrier & setNewLayout( vk::ImageLayout newLayout_ )
37382     {
37383       newLayout = newLayout_;
37384       return *this;
37385     }
37386 
setSrcQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37387     ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ )
37388     {
37389       srcQueueFamilyIndex = srcQueueFamilyIndex_;
37390       return *this;
37391     }
37392 
setDstQueueFamilyIndexVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37393     ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ )
37394     {
37395       dstQueueFamilyIndex = dstQueueFamilyIndex_;
37396       return *this;
37397     }
37398 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37399     ImageMemoryBarrier & setImage( vk::Image image_ )
37400     {
37401       image = image_;
37402       return *this;
37403     }
37404 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageMemoryBarrier37405     ImageMemoryBarrier & setSubresourceRange( vk::ImageSubresourceRange subresourceRange_ )
37406     {
37407       subresourceRange = subresourceRange_;
37408       return *this;
37409     }
37410 
operator VkImageMemoryBarrier const&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier37411     operator VkImageMemoryBarrier const&() const
37412     {
37413       return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
37414     }
37415 
operator VkImageMemoryBarrier&VULKAN_HPP_NAMESPACE::ImageMemoryBarrier37416     operator VkImageMemoryBarrier &()
37417     {
37418       return *reinterpret_cast<VkImageMemoryBarrier*>( this );
37419     }
37420 
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryBarrier37421     bool operator==( ImageMemoryBarrier const& rhs ) const
37422     {
37423       return ( sType == rhs.sType )
37424           && ( pNext == rhs.pNext )
37425           && ( srcAccessMask == rhs.srcAccessMask )
37426           && ( dstAccessMask == rhs.dstAccessMask )
37427           && ( oldLayout == rhs.oldLayout )
37428           && ( newLayout == rhs.newLayout )
37429           && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
37430           && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
37431           && ( image == rhs.image )
37432           && ( subresourceRange == rhs.subresourceRange );
37433     }
37434 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryBarrier37435     bool operator!=( ImageMemoryBarrier const& rhs ) const
37436     {
37437       return !operator==( rhs );
37438     }
37439 
37440   private:
37441     using layout::ImageMemoryBarrier::sType;
37442   };
37443   static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
37444   static_assert( std::is_standard_layout<ImageMemoryBarrier>::value, "struct wrapper is not a standard layout!" );
37445 
37446   namespace layout
37447   {
37448     struct ImageMemoryRequirementsInfo2
37449     {
37450     protected:
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::ImageMemoryRequirementsInfo237451       ImageMemoryRequirementsInfo2( vk::Image image_ = vk::Image() )
37452         : image( image_ )
37453       {}
37454 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::ImageMemoryRequirementsInfo237455       ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs )
37456       {
37457         *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this) = rhs;
37458       }
37459 
operator =VULKAN_HPP_NAMESPACE::layout::ImageMemoryRequirementsInfo237460       ImageMemoryRequirementsInfo2& operator=( VkImageMemoryRequirementsInfo2 const & rhs )
37461       {
37462         *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this) = rhs;
37463         return *this;
37464       }
37465 
37466     public:
37467       vk::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
37468       const void* pNext = nullptr;
37469       vk::Image image;
37470     };
37471     static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "layout struct and wrapper have different size!" );
37472   }
37473 
37474   struct ImageMemoryRequirementsInfo2 : public layout::ImageMemoryRequirementsInfo2
37475   {
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237476     ImageMemoryRequirementsInfo2( vk::Image image_ = vk::Image() )
37477       : layout::ImageMemoryRequirementsInfo2( image_ )
37478     {}
37479 
ImageMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237480     ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs )
37481       : layout::ImageMemoryRequirementsInfo2( rhs )
37482     {}
37483 
operator =VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237484     ImageMemoryRequirementsInfo2& operator=( VkImageMemoryRequirementsInfo2 const & rhs )
37485     {
37486       *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this) = rhs;
37487       return *this;
37488     }
37489 
setPNextVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237490     ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
37491     {
37492       pNext = pNext_;
37493       return *this;
37494     }
37495 
setImageVULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237496     ImageMemoryRequirementsInfo2 & setImage( vk::Image image_ )
37497     {
37498       image = image_;
37499       return *this;
37500     }
37501 
operator VkImageMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237502     operator VkImageMemoryRequirementsInfo2 const&() const
37503     {
37504       return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
37505     }
37506 
operator VkImageMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237507     operator VkImageMemoryRequirementsInfo2 &()
37508     {
37509       return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
37510     }
37511 
operator ==VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237512     bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const
37513     {
37514       return ( sType == rhs.sType )
37515           && ( pNext == rhs.pNext )
37516           && ( image == rhs.image );
37517     }
37518 
operator !=VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo237519     bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const
37520     {
37521       return !operator==( rhs );
37522     }
37523 
37524   private:
37525     using layout::ImageMemoryRequirementsInfo2::sType;
37526   };
37527   static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
37528   static_assert( std::is_standard_layout<ImageMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
37529 
37530 #ifdef VK_USE_PLATFORM_FUCHSIA
37531 
37532   namespace layout
37533   {
37534     struct ImagePipeSurfaceCreateInfoFUCHSIA
37535     {
37536     protected:
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::layout::ImagePipeSurfaceCreateInfoFUCHSIA37537       ImagePipeSurfaceCreateInfoFUCHSIA( vk::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = vk::ImagePipeSurfaceCreateFlagsFUCHSIA(),
37538                                          zx_handle_t imagePipeHandle_ = 0 )
37539         : flags( flags_ )
37540         , imagePipeHandle( imagePipeHandle_ )
37541       {}
37542 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::layout::ImagePipeSurfaceCreateInfoFUCHSIA37543       ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
37544       {
37545         *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this) = rhs;
37546       }
37547 
operator =VULKAN_HPP_NAMESPACE::layout::ImagePipeSurfaceCreateInfoFUCHSIA37548       ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
37549       {
37550         *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this) = rhs;
37551         return *this;
37552       }
37553 
37554     public:
37555       vk::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
37556       const void* pNext = nullptr;
37557       vk::ImagePipeSurfaceCreateFlagsFUCHSIA flags;
37558       zx_handle_t imagePipeHandle;
37559     };
37560     static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "layout struct and wrapper have different size!" );
37561   }
37562 
37563   struct ImagePipeSurfaceCreateInfoFUCHSIA : public layout::ImagePipeSurfaceCreateInfoFUCHSIA
37564   {
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37565     ImagePipeSurfaceCreateInfoFUCHSIA( vk::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = vk::ImagePipeSurfaceCreateFlagsFUCHSIA(),
37566                                        zx_handle_t imagePipeHandle_ = 0 )
37567       : layout::ImagePipeSurfaceCreateInfoFUCHSIA( flags_, imagePipeHandle_ )
37568     {}
37569 
ImagePipeSurfaceCreateInfoFUCHSIAVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37570     ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
37571       : layout::ImagePipeSurfaceCreateInfoFUCHSIA( rhs )
37572     {}
37573 
operator =VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37574     ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
37575     {
37576       *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this) = rhs;
37577       return *this;
37578     }
37579 
setPNextVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37580     ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ )
37581     {
37582       pNext = pNext_;
37583       return *this;
37584     }
37585 
setFlagsVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37586     ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( vk::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ )
37587     {
37588       flags = flags_;
37589       return *this;
37590     }
37591 
setImagePipeHandleVULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37592     ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ )
37593     {
37594       imagePipeHandle = imagePipeHandle_;
37595       return *this;
37596     }
37597 
operator VkImagePipeSurfaceCreateInfoFUCHSIA const&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37598     operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const
37599     {
37600       return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
37601     }
37602 
operator VkImagePipeSurfaceCreateInfoFUCHSIA&VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37603     operator VkImagePipeSurfaceCreateInfoFUCHSIA &()
37604     {
37605       return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
37606     }
37607 
operator ==VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37608     bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const
37609     {
37610       return ( sType == rhs.sType )
37611           && ( pNext == rhs.pNext )
37612           && ( flags == rhs.flags )
37613           && ( imagePipeHandle == rhs.imagePipeHandle );
37614     }
37615 
operator !=VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA37616     bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const
37617     {
37618       return !operator==( rhs );
37619     }
37620 
37621   private:
37622     using layout::ImagePipeSurfaceCreateInfoFUCHSIA::sType;
37623   };
37624   static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
37625   static_assert( std::is_standard_layout<ImagePipeSurfaceCreateInfoFUCHSIA>::value, "struct wrapper is not a standard layout!" );
37626 #endif /*VK_USE_PLATFORM_FUCHSIA*/
37627 
37628   namespace layout
37629   {
37630     struct ImagePlaneMemoryRequirementsInfo
37631     {
37632     protected:
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::layout::ImagePlaneMemoryRequirementsInfo37633       ImagePlaneMemoryRequirementsInfo( vk::ImageAspectFlagBits planeAspect_ = vk::ImageAspectFlagBits::eColor )
37634         : planeAspect( planeAspect_ )
37635       {}
37636 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::layout::ImagePlaneMemoryRequirementsInfo37637       ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs )
37638       {
37639         *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this) = rhs;
37640       }
37641 
operator =VULKAN_HPP_NAMESPACE::layout::ImagePlaneMemoryRequirementsInfo37642       ImagePlaneMemoryRequirementsInfo& operator=( VkImagePlaneMemoryRequirementsInfo const & rhs )
37643       {
37644         *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this) = rhs;
37645         return *this;
37646       }
37647 
37648     public:
37649       vk::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
37650       const void* pNext = nullptr;
37651       vk::ImageAspectFlagBits planeAspect;
37652     };
37653     static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "layout struct and wrapper have different size!" );
37654   }
37655 
37656   struct ImagePlaneMemoryRequirementsInfo : public layout::ImagePlaneMemoryRequirementsInfo
37657   {
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37658     ImagePlaneMemoryRequirementsInfo( vk::ImageAspectFlagBits planeAspect_ = vk::ImageAspectFlagBits::eColor )
37659       : layout::ImagePlaneMemoryRequirementsInfo( planeAspect_ )
37660     {}
37661 
ImagePlaneMemoryRequirementsInfoVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37662     ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs )
37663       : layout::ImagePlaneMemoryRequirementsInfo( rhs )
37664     {}
37665 
operator =VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37666     ImagePlaneMemoryRequirementsInfo& operator=( VkImagePlaneMemoryRequirementsInfo const & rhs )
37667     {
37668       *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this) = rhs;
37669       return *this;
37670     }
37671 
setPNextVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37672     ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ )
37673     {
37674       pNext = pNext_;
37675       return *this;
37676     }
37677 
setPlaneAspectVULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37678     ImagePlaneMemoryRequirementsInfo & setPlaneAspect( vk::ImageAspectFlagBits planeAspect_ )
37679     {
37680       planeAspect = planeAspect_;
37681       return *this;
37682     }
37683 
operator VkImagePlaneMemoryRequirementsInfo const&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37684     operator VkImagePlaneMemoryRequirementsInfo const&() const
37685     {
37686       return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
37687     }
37688 
operator VkImagePlaneMemoryRequirementsInfo&VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37689     operator VkImagePlaneMemoryRequirementsInfo &()
37690     {
37691       return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
37692     }
37693 
operator ==VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37694     bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const
37695     {
37696       return ( sType == rhs.sType )
37697           && ( pNext == rhs.pNext )
37698           && ( planeAspect == rhs.planeAspect );
37699     }
37700 
operator !=VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo37701     bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const
37702     {
37703       return !operator==( rhs );
37704     }
37705 
37706   private:
37707     using layout::ImagePlaneMemoryRequirementsInfo::sType;
37708   };
37709   static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
37710   static_assert( std::is_standard_layout<ImagePlaneMemoryRequirementsInfo>::value, "struct wrapper is not a standard layout!" );
37711 
37712   struct ImageResolve
37713   {
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve37714     ImageResolve( vk::ImageSubresourceLayers srcSubresource_ = vk::ImageSubresourceLayers(),
37715                   vk::Offset3D srcOffset_ = vk::Offset3D(),
37716                   vk::ImageSubresourceLayers dstSubresource_ = vk::ImageSubresourceLayers(),
37717                   vk::Offset3D dstOffset_ = vk::Offset3D(),
37718                   vk::Extent3D extent_ = vk::Extent3D() )
37719         : srcSubresource( srcSubresource_ )
37720         , srcOffset( srcOffset_ )
37721         , dstSubresource( dstSubresource_ )
37722         , dstOffset( dstOffset_ )
37723         , extent( extent_ )
37724     {}
37725 
ImageResolveVULKAN_HPP_NAMESPACE::ImageResolve37726     ImageResolve( VkImageResolve const & rhs )
37727     {
37728       *reinterpret_cast<VkImageResolve*>(this) = rhs;
37729     }
37730 
operator =VULKAN_HPP_NAMESPACE::ImageResolve37731     ImageResolve& operator=( VkImageResolve const & rhs )
37732     {
37733       *reinterpret_cast<VkImageResolve*>(this) = rhs;
37734       return *this;
37735     }
37736 
setSrcSubresourceVULKAN_HPP_NAMESPACE::ImageResolve37737     ImageResolve & setSrcSubresource( vk::ImageSubresourceLayers srcSubresource_ )
37738     {
37739       srcSubresource = srcSubresource_;
37740       return *this;
37741     }
37742 
setSrcOffsetVULKAN_HPP_NAMESPACE::ImageResolve37743     ImageResolve & setSrcOffset( vk::Offset3D srcOffset_ )
37744     {
37745       srcOffset = srcOffset_;
37746       return *this;
37747     }
37748 
setDstSubresourceVULKAN_HPP_NAMESPACE::ImageResolve37749     ImageResolve & setDstSubresource( vk::ImageSubresourceLayers dstSubresource_ )
37750     {
37751       dstSubresource = dstSubresource_;
37752       return *this;
37753     }
37754 
setDstOffsetVULKAN_HPP_NAMESPACE::ImageResolve37755     ImageResolve & setDstOffset( vk::Offset3D dstOffset_ )
37756     {
37757       dstOffset = dstOffset_;
37758       return *this;
37759     }
37760 
setExtentVULKAN_HPP_NAMESPACE::ImageResolve37761     ImageResolve & setExtent( vk::Extent3D extent_ )
37762     {
37763       extent = extent_;
37764       return *this;
37765     }
37766 
operator VkImageResolve const&VULKAN_HPP_NAMESPACE::ImageResolve37767     operator VkImageResolve const&() const
37768     {
37769       return *reinterpret_cast<const VkImageResolve*>( this );
37770     }
37771 
operator VkImageResolve&VULKAN_HPP_NAMESPACE::ImageResolve37772     operator VkImageResolve &()
37773     {
37774       return *reinterpret_cast<VkImageResolve*>( this );
37775     }
37776 
operator ==VULKAN_HPP_NAMESPACE::ImageResolve37777     bool operator==( ImageResolve const& rhs ) const
37778     {
37779       return ( srcSubresource == rhs.srcSubresource )
37780           && ( srcOffset == rhs.srcOffset )
37781           && ( dstSubresource == rhs.dstSubresource )
37782           && ( dstOffset == rhs.dstOffset )
37783           && ( extent == rhs.extent );
37784     }
37785 
operator !=VULKAN_HPP_NAMESPACE::ImageResolve37786     bool operator!=( ImageResolve const& rhs ) const
37787     {
37788       return !operator==( rhs );
37789     }
37790 
37791   public:
37792     vk::ImageSubresourceLayers srcSubresource;
37793     vk::Offset3D srcOffset;
37794     vk::ImageSubresourceLayers dstSubresource;
37795     vk::Offset3D dstOffset;
37796     vk::Extent3D extent;
37797   };
37798   static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
37799   static_assert( std::is_standard_layout<ImageResolve>::value, "struct wrapper is not a standard layout!" );
37800 
37801   namespace layout
37802   {
37803     struct ImageSparseMemoryRequirementsInfo2
37804     {
37805     protected:
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::ImageSparseMemoryRequirementsInfo237806       ImageSparseMemoryRequirementsInfo2( vk::Image image_ = vk::Image() )
37807         : image( image_ )
37808       {}
37809 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::layout::ImageSparseMemoryRequirementsInfo237810       ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs )
37811       {
37812         *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this) = rhs;
37813       }
37814 
operator =VULKAN_HPP_NAMESPACE::layout::ImageSparseMemoryRequirementsInfo237815       ImageSparseMemoryRequirementsInfo2& operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs )
37816       {
37817         *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this) = rhs;
37818         return *this;
37819       }
37820 
37821     public:
37822       vk::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
37823       const void* pNext = nullptr;
37824       vk::Image image;
37825     };
37826     static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "layout struct and wrapper have different size!" );
37827   }
37828 
37829   struct ImageSparseMemoryRequirementsInfo2 : public layout::ImageSparseMemoryRequirementsInfo2
37830   {
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237831     ImageSparseMemoryRequirementsInfo2( vk::Image image_ = vk::Image() )
37832       : layout::ImageSparseMemoryRequirementsInfo2( image_ )
37833     {}
37834 
ImageSparseMemoryRequirementsInfo2VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237835     ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs )
37836       : layout::ImageSparseMemoryRequirementsInfo2( rhs )
37837     {}
37838 
operator =VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237839     ImageSparseMemoryRequirementsInfo2& operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs )
37840     {
37841       *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this) = rhs;
37842       return *this;
37843     }
37844 
setPNextVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237845     ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
37846     {
37847       pNext = pNext_;
37848       return *this;
37849     }
37850 
setImageVULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237851     ImageSparseMemoryRequirementsInfo2 & setImage( vk::Image image_ )
37852     {
37853       image = image_;
37854       return *this;
37855     }
37856 
operator VkImageSparseMemoryRequirementsInfo2 const&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237857     operator VkImageSparseMemoryRequirementsInfo2 const&() const
37858     {
37859       return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
37860     }
37861 
operator VkImageSparseMemoryRequirementsInfo2&VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237862     operator VkImageSparseMemoryRequirementsInfo2 &()
37863     {
37864       return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
37865     }
37866 
operator ==VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237867     bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const
37868     {
37869       return ( sType == rhs.sType )
37870           && ( pNext == rhs.pNext )
37871           && ( image == rhs.image );
37872     }
37873 
operator !=VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo237874     bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const
37875     {
37876       return !operator==( rhs );
37877     }
37878 
37879   private:
37880     using layout::ImageSparseMemoryRequirementsInfo2::sType;
37881   };
37882   static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
37883   static_assert( std::is_standard_layout<ImageSparseMemoryRequirementsInfo2>::value, "struct wrapper is not a standard layout!" );
37884 
37885   namespace layout
37886   {
37887     struct ImageStencilUsageCreateInfoEXT
37888     {
37889     protected:
ImageStencilUsageCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageStencilUsageCreateInfoEXT37890       ImageStencilUsageCreateInfoEXT( vk::ImageUsageFlags stencilUsage_ = vk::ImageUsageFlags() )
37891         : stencilUsage( stencilUsage_ )
37892       {}
37893 
ImageStencilUsageCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ImageStencilUsageCreateInfoEXT37894       ImageStencilUsageCreateInfoEXT( VkImageStencilUsageCreateInfoEXT const & rhs )
37895       {
37896         *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>(this) = rhs;
37897       }
37898 
operator =VULKAN_HPP_NAMESPACE::layout::ImageStencilUsageCreateInfoEXT37899       ImageStencilUsageCreateInfoEXT& operator=( VkImageStencilUsageCreateInfoEXT const & rhs )
37900       {
37901         *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>(this) = rhs;
37902         return *this;
37903       }
37904 
37905     public:
37906       vk::StructureType sType = StructureType::eImageStencilUsageCreateInfoEXT;
37907       const void* pNext = nullptr;
37908       vk::ImageUsageFlags stencilUsage;
37909     };
37910     static_assert( sizeof( ImageStencilUsageCreateInfoEXT ) == sizeof( VkImageStencilUsageCreateInfoEXT ), "layout struct and wrapper have different size!" );
37911   }
37912 
37913   struct ImageStencilUsageCreateInfoEXT : public layout::ImageStencilUsageCreateInfoEXT
37914   {
ImageStencilUsageCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37915     ImageStencilUsageCreateInfoEXT( vk::ImageUsageFlags stencilUsage_ = vk::ImageUsageFlags() )
37916       : layout::ImageStencilUsageCreateInfoEXT( stencilUsage_ )
37917     {}
37918 
ImageStencilUsageCreateInfoEXTVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37919     ImageStencilUsageCreateInfoEXT( VkImageStencilUsageCreateInfoEXT const & rhs )
37920       : layout::ImageStencilUsageCreateInfoEXT( rhs )
37921     {}
37922 
operator =VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37923     ImageStencilUsageCreateInfoEXT& operator=( VkImageStencilUsageCreateInfoEXT const & rhs )
37924     {
37925       *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>(this) = rhs;
37926       return *this;
37927     }
37928 
setPNextVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37929     ImageStencilUsageCreateInfoEXT & setPNext( const void* pNext_ )
37930     {
37931       pNext = pNext_;
37932       return *this;
37933     }
37934 
setStencilUsageVULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37935     ImageStencilUsageCreateInfoEXT & setStencilUsage( vk::ImageUsageFlags stencilUsage_ )
37936     {
37937       stencilUsage = stencilUsage_;
37938       return *this;
37939     }
37940 
operator VkImageStencilUsageCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37941     operator VkImageStencilUsageCreateInfoEXT const&() const
37942     {
37943       return *reinterpret_cast<const VkImageStencilUsageCreateInfoEXT*>( this );
37944     }
37945 
operator VkImageStencilUsageCreateInfoEXT&VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37946     operator VkImageStencilUsageCreateInfoEXT &()
37947     {
37948       return *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>( this );
37949     }
37950 
operator ==VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37951     bool operator==( ImageStencilUsageCreateInfoEXT const& rhs ) const
37952     {
37953       return ( sType == rhs.sType )
37954           && ( pNext == rhs.pNext )
37955           && ( stencilUsage == rhs.stencilUsage );
37956     }
37957 
operator !=VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfoEXT37958     bool operator!=( ImageStencilUsageCreateInfoEXT const& rhs ) const
37959     {
37960       return !operator==( rhs );
37961     }
37962 
37963   private:
37964     using layout::ImageStencilUsageCreateInfoEXT::sType;
37965   };
37966   static_assert( sizeof( ImageStencilUsageCreateInfoEXT ) == sizeof( VkImageStencilUsageCreateInfoEXT ), "struct and wrapper have different size!" );
37967   static_assert( std::is_standard_layout<ImageStencilUsageCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
37968 
37969   namespace layout
37970   {
37971     struct ImageSwapchainCreateInfoKHR
37972     {
37973     protected:
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::ImageSwapchainCreateInfoKHR37974       ImageSwapchainCreateInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR() )
37975         : swapchain( swapchain_ )
37976       {}
37977 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::ImageSwapchainCreateInfoKHR37978       ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs )
37979       {
37980         *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this) = rhs;
37981       }
37982 
operator =VULKAN_HPP_NAMESPACE::layout::ImageSwapchainCreateInfoKHR37983       ImageSwapchainCreateInfoKHR& operator=( VkImageSwapchainCreateInfoKHR const & rhs )
37984       {
37985         *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this) = rhs;
37986         return *this;
37987       }
37988 
37989     public:
37990       vk::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
37991       const void* pNext = nullptr;
37992       vk::SwapchainKHR swapchain;
37993     };
37994     static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "layout struct and wrapper have different size!" );
37995   }
37996 
37997   struct ImageSwapchainCreateInfoKHR : public layout::ImageSwapchainCreateInfoKHR
37998   {
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR37999     ImageSwapchainCreateInfoKHR( vk::SwapchainKHR swapchain_ = vk::SwapchainKHR() )
38000       : layout::ImageSwapchainCreateInfoKHR( swapchain_ )
38001     {}
38002 
ImageSwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38003     ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs )
38004       : layout::ImageSwapchainCreateInfoKHR( rhs )
38005     {}
38006 
operator =VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38007     ImageSwapchainCreateInfoKHR& operator=( VkImageSwapchainCreateInfoKHR const & rhs )
38008     {
38009       *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this) = rhs;
38010       return *this;
38011     }
38012 
setPNextVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38013     ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ )
38014     {
38015       pNext = pNext_;
38016       return *this;
38017     }
38018 
setSwapchainVULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38019     ImageSwapchainCreateInfoKHR & setSwapchain( vk::SwapchainKHR swapchain_ )
38020     {
38021       swapchain = swapchain_;
38022       return *this;
38023     }
38024 
operator VkImageSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38025     operator VkImageSwapchainCreateInfoKHR const&() const
38026     {
38027       return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
38028     }
38029 
operator VkImageSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38030     operator VkImageSwapchainCreateInfoKHR &()
38031     {
38032       return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
38033     }
38034 
operator ==VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38035     bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const
38036     {
38037       return ( sType == rhs.sType )
38038           && ( pNext == rhs.pNext )
38039           && ( swapchain == rhs.swapchain );
38040     }
38041 
operator !=VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR38042     bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const
38043     {
38044       return !operator==( rhs );
38045     }
38046 
38047   private:
38048     using layout::ImageSwapchainCreateInfoKHR::sType;
38049   };
38050   static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
38051   static_assert( std::is_standard_layout<ImageSwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
38052 
38053   namespace layout
38054   {
38055     struct ImageViewASTCDecodeModeEXT
38056     {
38057     protected:
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::layout::ImageViewASTCDecodeModeEXT38058       ImageViewASTCDecodeModeEXT( vk::Format decodeMode_ = vk::Format::eUndefined )
38059         : decodeMode( decodeMode_ )
38060       {}
38061 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::layout::ImageViewASTCDecodeModeEXT38062       ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs )
38063       {
38064         *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this) = rhs;
38065       }
38066 
operator =VULKAN_HPP_NAMESPACE::layout::ImageViewASTCDecodeModeEXT38067       ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs )
38068       {
38069         *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this) = rhs;
38070         return *this;
38071       }
38072 
38073     public:
38074       vk::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
38075       const void* pNext = nullptr;
38076       vk::Format decodeMode;
38077     };
38078     static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "layout struct and wrapper have different size!" );
38079   }
38080 
38081   struct ImageViewASTCDecodeModeEXT : public layout::ImageViewASTCDecodeModeEXT
38082   {
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38083     ImageViewASTCDecodeModeEXT( vk::Format decodeMode_ = vk::Format::eUndefined )
38084       : layout::ImageViewASTCDecodeModeEXT( decodeMode_ )
38085     {}
38086 
ImageViewASTCDecodeModeEXTVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38087     ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs )
38088       : layout::ImageViewASTCDecodeModeEXT( rhs )
38089     {}
38090 
operator =VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38091     ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs )
38092     {
38093       *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this) = rhs;
38094       return *this;
38095     }
38096 
setPNextVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38097     ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ )
38098     {
38099       pNext = pNext_;
38100       return *this;
38101     }
38102 
setDecodeModeVULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38103     ImageViewASTCDecodeModeEXT & setDecodeMode( vk::Format decodeMode_ )
38104     {
38105       decodeMode = decodeMode_;
38106       return *this;
38107     }
38108 
operator VkImageViewASTCDecodeModeEXT const&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38109     operator VkImageViewASTCDecodeModeEXT const&() const
38110     {
38111       return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
38112     }
38113 
operator VkImageViewASTCDecodeModeEXT&VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38114     operator VkImageViewASTCDecodeModeEXT &()
38115     {
38116       return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
38117     }
38118 
operator ==VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38119     bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const
38120     {
38121       return ( sType == rhs.sType )
38122           && ( pNext == rhs.pNext )
38123           && ( decodeMode == rhs.decodeMode );
38124     }
38125 
operator !=VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT38126     bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const
38127     {
38128       return !operator==( rhs );
38129     }
38130 
38131   private:
38132     using layout::ImageViewASTCDecodeModeEXT::sType;
38133   };
38134   static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
38135   static_assert( std::is_standard_layout<ImageViewASTCDecodeModeEXT>::value, "struct wrapper is not a standard layout!" );
38136 
38137   namespace layout
38138   {
38139     struct ImageViewCreateInfo
38140     {
38141     protected:
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageViewCreateInfo38142       ImageViewCreateInfo( vk::ImageViewCreateFlags flags_ = vk::ImageViewCreateFlags(),
38143                            vk::Image image_ = vk::Image(),
38144                            vk::ImageViewType viewType_ = vk::ImageViewType::e1D,
38145                            vk::Format format_ = vk::Format::eUndefined,
38146                            vk::ComponentMapping components_ = vk::ComponentMapping(),
38147                            vk::ImageSubresourceRange subresourceRange_ = vk::ImageSubresourceRange() )
38148         : flags( flags_ )
38149         , image( image_ )
38150         , viewType( viewType_ )
38151         , format( format_ )
38152         , components( components_ )
38153         , subresourceRange( subresourceRange_ )
38154       {}
38155 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageViewCreateInfo38156       ImageViewCreateInfo( VkImageViewCreateInfo const & rhs )
38157       {
38158         *reinterpret_cast<VkImageViewCreateInfo*>(this) = rhs;
38159       }
38160 
operator =VULKAN_HPP_NAMESPACE::layout::ImageViewCreateInfo38161       ImageViewCreateInfo& operator=( VkImageViewCreateInfo const & rhs )
38162       {
38163         *reinterpret_cast<VkImageViewCreateInfo*>(this) = rhs;
38164         return *this;
38165       }
38166 
38167     public:
38168       vk::StructureType sType = StructureType::eImageViewCreateInfo;
38169       const void* pNext = nullptr;
38170       vk::ImageViewCreateFlags flags;
38171       vk::Image image;
38172       vk::ImageViewType viewType;
38173       vk::Format format;
38174       vk::ComponentMapping components;
38175       vk::ImageSubresourceRange subresourceRange;
38176     };
38177     static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "layout struct and wrapper have different size!" );
38178   }
38179 
38180   struct ImageViewCreateInfo : public layout::ImageViewCreateInfo
38181   {
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38182     ImageViewCreateInfo( vk::ImageViewCreateFlags flags_ = vk::ImageViewCreateFlags(),
38183                          vk::Image image_ = vk::Image(),
38184                          vk::ImageViewType viewType_ = vk::ImageViewType::e1D,
38185                          vk::Format format_ = vk::Format::eUndefined,
38186                          vk::ComponentMapping components_ = vk::ComponentMapping(),
38187                          vk::ImageSubresourceRange subresourceRange_ = vk::ImageSubresourceRange() )
38188       : layout::ImageViewCreateInfo( flags_, image_, viewType_, format_, components_, subresourceRange_ )
38189     {}
38190 
ImageViewCreateInfoVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38191     ImageViewCreateInfo( VkImageViewCreateInfo const & rhs )
38192       : layout::ImageViewCreateInfo( rhs )
38193     {}
38194 
operator =VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38195     ImageViewCreateInfo& operator=( VkImageViewCreateInfo const & rhs )
38196     {
38197       *reinterpret_cast<VkImageViewCreateInfo*>(this) = rhs;
38198       return *this;
38199     }
38200 
setPNextVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38201     ImageViewCreateInfo & setPNext( const void* pNext_ )
38202     {
38203       pNext = pNext_;
38204       return *this;
38205     }
38206 
setFlagsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38207     ImageViewCreateInfo & setFlags( vk::ImageViewCreateFlags flags_ )
38208     {
38209       flags = flags_;
38210       return *this;
38211     }
38212 
setImageVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38213     ImageViewCreateInfo & setImage( vk::Image image_ )
38214     {
38215       image = image_;
38216       return *this;
38217     }
38218 
setViewTypeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38219     ImageViewCreateInfo & setViewType( vk::ImageViewType viewType_ )
38220     {
38221       viewType = viewType_;
38222       return *this;
38223     }
38224 
setFormatVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38225     ImageViewCreateInfo & setFormat( vk::Format format_ )
38226     {
38227       format = format_;
38228       return *this;
38229     }
38230 
setComponentsVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38231     ImageViewCreateInfo & setComponents( vk::ComponentMapping components_ )
38232     {
38233       components = components_;
38234       return *this;
38235     }
38236 
setSubresourceRangeVULKAN_HPP_NAMESPACE::ImageViewCreateInfo38237     ImageViewCreateInfo & setSubresourceRange( vk::ImageSubresourceRange subresourceRange_ )
38238     {
38239       subresourceRange = subresourceRange_;
38240       return *this;
38241     }
38242 
operator VkImageViewCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38243     operator VkImageViewCreateInfo const&() const
38244     {
38245       return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
38246     }
38247 
operator VkImageViewCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38248     operator VkImageViewCreateInfo &()
38249     {
38250       return *reinterpret_cast<VkImageViewCreateInfo*>( this );
38251     }
38252 
operator ==VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38253     bool operator==( ImageViewCreateInfo const& rhs ) const
38254     {
38255       return ( sType == rhs.sType )
38256           && ( pNext == rhs.pNext )
38257           && ( flags == rhs.flags )
38258           && ( image == rhs.image )
38259           && ( viewType == rhs.viewType )
38260           && ( format == rhs.format )
38261           && ( components == rhs.components )
38262           && ( subresourceRange == rhs.subresourceRange );
38263     }
38264 
operator !=VULKAN_HPP_NAMESPACE::ImageViewCreateInfo38265     bool operator!=( ImageViewCreateInfo const& rhs ) const
38266     {
38267       return !operator==( rhs );
38268     }
38269 
38270   private:
38271     using layout::ImageViewCreateInfo::sType;
38272   };
38273   static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
38274   static_assert( std::is_standard_layout<ImageViewCreateInfo>::value, "struct wrapper is not a standard layout!" );
38275 
38276   namespace layout
38277   {
38278     struct ImageViewHandleInfoNVX
38279     {
38280     protected:
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::layout::ImageViewHandleInfoNVX38281       ImageViewHandleInfoNVX( vk::ImageView imageView_ = vk::ImageView(),
38282                               vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
38283                               vk::Sampler sampler_ = vk::Sampler() )
38284         : imageView( imageView_ )
38285         , descriptorType( descriptorType_ )
38286         , sampler( sampler_ )
38287       {}
38288 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::layout::ImageViewHandleInfoNVX38289       ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs )
38290       {
38291         *reinterpret_cast<VkImageViewHandleInfoNVX*>(this) = rhs;
38292       }
38293 
operator =VULKAN_HPP_NAMESPACE::layout::ImageViewHandleInfoNVX38294       ImageViewHandleInfoNVX& operator=( VkImageViewHandleInfoNVX const & rhs )
38295       {
38296         *reinterpret_cast<VkImageViewHandleInfoNVX*>(this) = rhs;
38297         return *this;
38298       }
38299 
38300     public:
38301       vk::StructureType sType = StructureType::eImageViewHandleInfoNVX;
38302       const void* pNext = nullptr;
38303       vk::ImageView imageView;
38304       vk::DescriptorType descriptorType;
38305       vk::Sampler sampler;
38306     };
38307     static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "layout struct and wrapper have different size!" );
38308   }
38309 
38310   struct ImageViewHandleInfoNVX : public layout::ImageViewHandleInfoNVX
38311   {
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38312     ImageViewHandleInfoNVX( vk::ImageView imageView_ = vk::ImageView(),
38313                             vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
38314                             vk::Sampler sampler_ = vk::Sampler() )
38315       : layout::ImageViewHandleInfoNVX( imageView_, descriptorType_, sampler_ )
38316     {}
38317 
ImageViewHandleInfoNVXVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38318     ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs )
38319       : layout::ImageViewHandleInfoNVX( rhs )
38320     {}
38321 
operator =VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38322     ImageViewHandleInfoNVX& operator=( VkImageViewHandleInfoNVX const & rhs )
38323     {
38324       *reinterpret_cast<VkImageViewHandleInfoNVX*>(this) = rhs;
38325       return *this;
38326     }
38327 
setPNextVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38328     ImageViewHandleInfoNVX & setPNext( const void* pNext_ )
38329     {
38330       pNext = pNext_;
38331       return *this;
38332     }
38333 
setImageViewVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38334     ImageViewHandleInfoNVX & setImageView( vk::ImageView imageView_ )
38335     {
38336       imageView = imageView_;
38337       return *this;
38338     }
38339 
setDescriptorTypeVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38340     ImageViewHandleInfoNVX & setDescriptorType( vk::DescriptorType descriptorType_ )
38341     {
38342       descriptorType = descriptorType_;
38343       return *this;
38344     }
38345 
setSamplerVULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38346     ImageViewHandleInfoNVX & setSampler( vk::Sampler sampler_ )
38347     {
38348       sampler = sampler_;
38349       return *this;
38350     }
38351 
operator VkImageViewHandleInfoNVX const&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38352     operator VkImageViewHandleInfoNVX const&() const
38353     {
38354       return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
38355     }
38356 
operator VkImageViewHandleInfoNVX&VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38357     operator VkImageViewHandleInfoNVX &()
38358     {
38359       return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
38360     }
38361 
operator ==VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38362     bool operator==( ImageViewHandleInfoNVX const& rhs ) const
38363     {
38364       return ( sType == rhs.sType )
38365           && ( pNext == rhs.pNext )
38366           && ( imageView == rhs.imageView )
38367           && ( descriptorType == rhs.descriptorType )
38368           && ( sampler == rhs.sampler );
38369     }
38370 
operator !=VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX38371     bool operator!=( ImageViewHandleInfoNVX const& rhs ) const
38372     {
38373       return !operator==( rhs );
38374     }
38375 
38376   private:
38377     using layout::ImageViewHandleInfoNVX::sType;
38378   };
38379   static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
38380   static_assert( std::is_standard_layout<ImageViewHandleInfoNVX>::value, "struct wrapper is not a standard layout!" );
38381 
38382   namespace layout
38383   {
38384     struct ImageViewUsageCreateInfo
38385     {
38386     protected:
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageViewUsageCreateInfo38387       ImageViewUsageCreateInfo( vk::ImageUsageFlags usage_ = vk::ImageUsageFlags() )
38388         : usage( usage_ )
38389       {}
38390 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::layout::ImageViewUsageCreateInfo38391       ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs )
38392       {
38393         *reinterpret_cast<VkImageViewUsageCreateInfo*>(this) = rhs;
38394       }
38395 
operator =VULKAN_HPP_NAMESPACE::layout::ImageViewUsageCreateInfo38396       ImageViewUsageCreateInfo& operator=( VkImageViewUsageCreateInfo const & rhs )
38397       {
38398         *reinterpret_cast<VkImageViewUsageCreateInfo*>(this) = rhs;
38399         return *this;
38400       }
38401 
38402     public:
38403       vk::StructureType sType = StructureType::eImageViewUsageCreateInfo;
38404       const void* pNext = nullptr;
38405       vk::ImageUsageFlags usage;
38406     };
38407     static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "layout struct and wrapper have different size!" );
38408   }
38409 
38410   struct ImageViewUsageCreateInfo : public layout::ImageViewUsageCreateInfo
38411   {
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38412     ImageViewUsageCreateInfo( vk::ImageUsageFlags usage_ = vk::ImageUsageFlags() )
38413       : layout::ImageViewUsageCreateInfo( usage_ )
38414     {}
38415 
ImageViewUsageCreateInfoVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38416     ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs )
38417       : layout::ImageViewUsageCreateInfo( rhs )
38418     {}
38419 
operator =VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38420     ImageViewUsageCreateInfo& operator=( VkImageViewUsageCreateInfo const & rhs )
38421     {
38422       *reinterpret_cast<VkImageViewUsageCreateInfo*>(this) = rhs;
38423       return *this;
38424     }
38425 
setPNextVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38426     ImageViewUsageCreateInfo & setPNext( const void* pNext_ )
38427     {
38428       pNext = pNext_;
38429       return *this;
38430     }
38431 
setUsageVULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38432     ImageViewUsageCreateInfo & setUsage( vk::ImageUsageFlags usage_ )
38433     {
38434       usage = usage_;
38435       return *this;
38436     }
38437 
operator VkImageViewUsageCreateInfo const&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38438     operator VkImageViewUsageCreateInfo const&() const
38439     {
38440       return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
38441     }
38442 
operator VkImageViewUsageCreateInfo&VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38443     operator VkImageViewUsageCreateInfo &()
38444     {
38445       return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
38446     }
38447 
operator ==VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38448     bool operator==( ImageViewUsageCreateInfo const& rhs ) const
38449     {
38450       return ( sType == rhs.sType )
38451           && ( pNext == rhs.pNext )
38452           && ( usage == rhs.usage );
38453     }
38454 
operator !=VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo38455     bool operator!=( ImageViewUsageCreateInfo const& rhs ) const
38456     {
38457       return !operator==( rhs );
38458     }
38459 
38460   private:
38461     using layout::ImageViewUsageCreateInfo::sType;
38462   };
38463   static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
38464   static_assert( std::is_standard_layout<ImageViewUsageCreateInfo>::value, "struct wrapper is not a standard layout!" );
38465 
38466 #ifdef VK_USE_PLATFORM_ANDROID_KHR
38467 
38468   namespace layout
38469   {
38470     struct ImportAndroidHardwareBufferInfoANDROID
38471     {
38472     protected:
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::layout::ImportAndroidHardwareBufferInfoANDROID38473       ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = nullptr )
38474         : buffer( buffer_ )
38475       {}
38476 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::layout::ImportAndroidHardwareBufferInfoANDROID38477       ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
38478       {
38479         *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this) = rhs;
38480       }
38481 
operator =VULKAN_HPP_NAMESPACE::layout::ImportAndroidHardwareBufferInfoANDROID38482       ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
38483       {
38484         *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this) = rhs;
38485         return *this;
38486       }
38487 
38488     public:
38489       vk::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
38490       const void* pNext = nullptr;
38491       struct AHardwareBuffer* buffer;
38492     };
38493     static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "layout struct and wrapper have different size!" );
38494   }
38495 
38496   struct ImportAndroidHardwareBufferInfoANDROID : public layout::ImportAndroidHardwareBufferInfoANDROID
38497   {
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38498     ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = nullptr )
38499       : layout::ImportAndroidHardwareBufferInfoANDROID( buffer_ )
38500     {}
38501 
ImportAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38502     ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
38503       : layout::ImportAndroidHardwareBufferInfoANDROID( rhs )
38504     {}
38505 
operator =VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38506     ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
38507     {
38508       *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this) = rhs;
38509       return *this;
38510     }
38511 
setPNextVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38512     ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ )
38513     {
38514       pNext = pNext_;
38515       return *this;
38516     }
38517 
setBufferVULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38518     ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ )
38519     {
38520       buffer = buffer_;
38521       return *this;
38522     }
38523 
operator VkImportAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38524     operator VkImportAndroidHardwareBufferInfoANDROID const&() const
38525     {
38526       return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
38527     }
38528 
operator VkImportAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38529     operator VkImportAndroidHardwareBufferInfoANDROID &()
38530     {
38531       return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
38532     }
38533 
operator ==VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38534     bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
38535     {
38536       return ( sType == rhs.sType )
38537           && ( pNext == rhs.pNext )
38538           && ( buffer == rhs.buffer );
38539     }
38540 
operator !=VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID38541     bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
38542     {
38543       return !operator==( rhs );
38544     }
38545 
38546   private:
38547     using layout::ImportAndroidHardwareBufferInfoANDROID::sType;
38548   };
38549   static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
38550   static_assert( std::is_standard_layout<ImportAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
38551 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
38552 
38553   namespace layout
38554   {
38555     struct ImportFenceFdInfoKHR
38556     {
38557     protected:
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportFenceFdInfoKHR38558       ImportFenceFdInfoKHR( vk::Fence fence_ = vk::Fence(),
38559                             vk::FenceImportFlags flags_ = vk::FenceImportFlags(),
38560                             vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
38561                             int fd_ = 0 )
38562         : fence( fence_ )
38563         , flags( flags_ )
38564         , handleType( handleType_ )
38565         , fd( fd_ )
38566       {}
38567 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportFenceFdInfoKHR38568       ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs )
38569       {
38570         *reinterpret_cast<VkImportFenceFdInfoKHR*>(this) = rhs;
38571       }
38572 
operator =VULKAN_HPP_NAMESPACE::layout::ImportFenceFdInfoKHR38573       ImportFenceFdInfoKHR& operator=( VkImportFenceFdInfoKHR const & rhs )
38574       {
38575         *reinterpret_cast<VkImportFenceFdInfoKHR*>(this) = rhs;
38576         return *this;
38577       }
38578 
38579     public:
38580       vk::StructureType sType = StructureType::eImportFenceFdInfoKHR;
38581       const void* pNext = nullptr;
38582       vk::Fence fence;
38583       vk::FenceImportFlags flags;
38584       vk::ExternalFenceHandleTypeFlagBits handleType;
38585       int fd;
38586     };
38587     static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "layout struct and wrapper have different size!" );
38588   }
38589 
38590   struct ImportFenceFdInfoKHR : public layout::ImportFenceFdInfoKHR
38591   {
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38592     ImportFenceFdInfoKHR( vk::Fence fence_ = vk::Fence(),
38593                           vk::FenceImportFlags flags_ = vk::FenceImportFlags(),
38594                           vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
38595                           int fd_ = 0 )
38596       : layout::ImportFenceFdInfoKHR( fence_, flags_, handleType_, fd_ )
38597     {}
38598 
ImportFenceFdInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38599     ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs )
38600       : layout::ImportFenceFdInfoKHR( rhs )
38601     {}
38602 
operator =VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38603     ImportFenceFdInfoKHR& operator=( VkImportFenceFdInfoKHR const & rhs )
38604     {
38605       *reinterpret_cast<VkImportFenceFdInfoKHR*>(this) = rhs;
38606       return *this;
38607     }
38608 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38609     ImportFenceFdInfoKHR & setPNext( const void* pNext_ )
38610     {
38611       pNext = pNext_;
38612       return *this;
38613     }
38614 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38615     ImportFenceFdInfoKHR & setFence( vk::Fence fence_ )
38616     {
38617       fence = fence_;
38618       return *this;
38619     }
38620 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38621     ImportFenceFdInfoKHR & setFlags( vk::FenceImportFlags flags_ )
38622     {
38623       flags = flags_;
38624       return *this;
38625     }
38626 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38627     ImportFenceFdInfoKHR & setHandleType( vk::ExternalFenceHandleTypeFlagBits handleType_ )
38628     {
38629       handleType = handleType_;
38630       return *this;
38631     }
38632 
setFdVULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38633     ImportFenceFdInfoKHR & setFd( int fd_ )
38634     {
38635       fd = fd_;
38636       return *this;
38637     }
38638 
operator VkImportFenceFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38639     operator VkImportFenceFdInfoKHR const&() const
38640     {
38641       return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
38642     }
38643 
operator VkImportFenceFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38644     operator VkImportFenceFdInfoKHR &()
38645     {
38646       return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
38647     }
38648 
operator ==VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38649     bool operator==( ImportFenceFdInfoKHR const& rhs ) const
38650     {
38651       return ( sType == rhs.sType )
38652           && ( pNext == rhs.pNext )
38653           && ( fence == rhs.fence )
38654           && ( flags == rhs.flags )
38655           && ( handleType == rhs.handleType )
38656           && ( fd == rhs.fd );
38657     }
38658 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR38659     bool operator!=( ImportFenceFdInfoKHR const& rhs ) const
38660     {
38661       return !operator==( rhs );
38662     }
38663 
38664   private:
38665     using layout::ImportFenceFdInfoKHR::sType;
38666   };
38667   static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
38668   static_assert( std::is_standard_layout<ImportFenceFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
38669 
38670 #ifdef VK_USE_PLATFORM_WIN32_KHR
38671 
38672   namespace layout
38673   {
38674     struct ImportFenceWin32HandleInfoKHR
38675     {
38676     protected:
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportFenceWin32HandleInfoKHR38677       ImportFenceWin32HandleInfoKHR( vk::Fence fence_ = vk::Fence(),
38678                                      vk::FenceImportFlags flags_ = vk::FenceImportFlags(),
38679                                      vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
38680                                      HANDLE handle_ = 0,
38681                                      LPCWSTR name_ = nullptr )
38682         : fence( fence_ )
38683         , flags( flags_ )
38684         , handleType( handleType_ )
38685         , handle( handle_ )
38686         , name( name_ )
38687       {}
38688 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportFenceWin32HandleInfoKHR38689       ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs )
38690       {
38691         *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this) = rhs;
38692       }
38693 
operator =VULKAN_HPP_NAMESPACE::layout::ImportFenceWin32HandleInfoKHR38694       ImportFenceWin32HandleInfoKHR& operator=( VkImportFenceWin32HandleInfoKHR const & rhs )
38695       {
38696         *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this) = rhs;
38697         return *this;
38698       }
38699 
38700     public:
38701       vk::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
38702       const void* pNext = nullptr;
38703       vk::Fence fence;
38704       vk::FenceImportFlags flags;
38705       vk::ExternalFenceHandleTypeFlagBits handleType;
38706       HANDLE handle;
38707       LPCWSTR name;
38708     };
38709     static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
38710   }
38711 
38712   struct ImportFenceWin32HandleInfoKHR : public layout::ImportFenceWin32HandleInfoKHR
38713   {
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38714     ImportFenceWin32HandleInfoKHR( vk::Fence fence_ = vk::Fence(),
38715                                    vk::FenceImportFlags flags_ = vk::FenceImportFlags(),
38716                                    vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
38717                                    HANDLE handle_ = 0,
38718                                    LPCWSTR name_ = nullptr )
38719       : layout::ImportFenceWin32HandleInfoKHR( fence_, flags_, handleType_, handle_, name_ )
38720     {}
38721 
ImportFenceWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38722     ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs )
38723       : layout::ImportFenceWin32HandleInfoKHR( rhs )
38724     {}
38725 
operator =VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38726     ImportFenceWin32HandleInfoKHR& operator=( VkImportFenceWin32HandleInfoKHR const & rhs )
38727     {
38728       *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this) = rhs;
38729       return *this;
38730     }
38731 
setPNextVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38732     ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ )
38733     {
38734       pNext = pNext_;
38735       return *this;
38736     }
38737 
setFenceVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38738     ImportFenceWin32HandleInfoKHR & setFence( vk::Fence fence_ )
38739     {
38740       fence = fence_;
38741       return *this;
38742     }
38743 
setFlagsVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38744     ImportFenceWin32HandleInfoKHR & setFlags( vk::FenceImportFlags flags_ )
38745     {
38746       flags = flags_;
38747       return *this;
38748     }
38749 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38750     ImportFenceWin32HandleInfoKHR & setHandleType( vk::ExternalFenceHandleTypeFlagBits handleType_ )
38751     {
38752       handleType = handleType_;
38753       return *this;
38754     }
38755 
setHandleVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38756     ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ )
38757     {
38758       handle = handle_;
38759       return *this;
38760     }
38761 
setNameVULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38762     ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ )
38763     {
38764       name = name_;
38765       return *this;
38766     }
38767 
operator VkImportFenceWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38768     operator VkImportFenceWin32HandleInfoKHR const&() const
38769     {
38770       return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
38771     }
38772 
operator VkImportFenceWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38773     operator VkImportFenceWin32HandleInfoKHR &()
38774     {
38775       return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
38776     }
38777 
operator ==VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38778     bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const
38779     {
38780       return ( sType == rhs.sType )
38781           && ( pNext == rhs.pNext )
38782           && ( fence == rhs.fence )
38783           && ( flags == rhs.flags )
38784           && ( handleType == rhs.handleType )
38785           && ( handle == rhs.handle )
38786           && ( name == rhs.name );
38787     }
38788 
operator !=VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR38789     bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const
38790     {
38791       return !operator==( rhs );
38792     }
38793 
38794   private:
38795     using layout::ImportFenceWin32HandleInfoKHR::sType;
38796   };
38797   static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
38798   static_assert( std::is_standard_layout<ImportFenceWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
38799 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
38800 
38801   namespace layout
38802   {
38803     struct ImportMemoryFdInfoKHR
38804     {
38805     protected:
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportMemoryFdInfoKHR38806       ImportMemoryFdInfoKHR( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
38807                              int fd_ = 0 )
38808         : handleType( handleType_ )
38809         , fd( fd_ )
38810       {}
38811 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportMemoryFdInfoKHR38812       ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs )
38813       {
38814         *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this) = rhs;
38815       }
38816 
operator =VULKAN_HPP_NAMESPACE::layout::ImportMemoryFdInfoKHR38817       ImportMemoryFdInfoKHR& operator=( VkImportMemoryFdInfoKHR const & rhs )
38818       {
38819         *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this) = rhs;
38820         return *this;
38821       }
38822 
38823     public:
38824       vk::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
38825       const void* pNext = nullptr;
38826       vk::ExternalMemoryHandleTypeFlagBits handleType;
38827       int fd;
38828     };
38829     static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "layout struct and wrapper have different size!" );
38830   }
38831 
38832   struct ImportMemoryFdInfoKHR : public layout::ImportMemoryFdInfoKHR
38833   {
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38834     ImportMemoryFdInfoKHR( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
38835                            int fd_ = 0 )
38836       : layout::ImportMemoryFdInfoKHR( handleType_, fd_ )
38837     {}
38838 
ImportMemoryFdInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38839     ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs )
38840       : layout::ImportMemoryFdInfoKHR( rhs )
38841     {}
38842 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38843     ImportMemoryFdInfoKHR& operator=( VkImportMemoryFdInfoKHR const & rhs )
38844     {
38845       *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this) = rhs;
38846       return *this;
38847     }
38848 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38849     ImportMemoryFdInfoKHR & setPNext( const void* pNext_ )
38850     {
38851       pNext = pNext_;
38852       return *this;
38853     }
38854 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38855     ImportMemoryFdInfoKHR & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
38856     {
38857       handleType = handleType_;
38858       return *this;
38859     }
38860 
setFdVULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38861     ImportMemoryFdInfoKHR & setFd( int fd_ )
38862     {
38863       fd = fd_;
38864       return *this;
38865     }
38866 
operator VkImportMemoryFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38867     operator VkImportMemoryFdInfoKHR const&() const
38868     {
38869       return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
38870     }
38871 
operator VkImportMemoryFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38872     operator VkImportMemoryFdInfoKHR &()
38873     {
38874       return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
38875     }
38876 
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38877     bool operator==( ImportMemoryFdInfoKHR const& rhs ) const
38878     {
38879       return ( sType == rhs.sType )
38880           && ( pNext == rhs.pNext )
38881           && ( handleType == rhs.handleType )
38882           && ( fd == rhs.fd );
38883     }
38884 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR38885     bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const
38886     {
38887       return !operator==( rhs );
38888     }
38889 
38890   private:
38891     using layout::ImportMemoryFdInfoKHR::sType;
38892   };
38893   static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
38894   static_assert( std::is_standard_layout<ImportMemoryFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
38895 
38896   namespace layout
38897   {
38898     struct ImportMemoryHostPointerInfoEXT
38899     {
38900     protected:
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::layout::ImportMemoryHostPointerInfoEXT38901       ImportMemoryHostPointerInfoEXT( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
38902                                       void* pHostPointer_ = nullptr )
38903         : handleType( handleType_ )
38904         , pHostPointer( pHostPointer_ )
38905       {}
38906 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::layout::ImportMemoryHostPointerInfoEXT38907       ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs )
38908       {
38909         *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this) = rhs;
38910       }
38911 
operator =VULKAN_HPP_NAMESPACE::layout::ImportMemoryHostPointerInfoEXT38912       ImportMemoryHostPointerInfoEXT& operator=( VkImportMemoryHostPointerInfoEXT const & rhs )
38913       {
38914         *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this) = rhs;
38915         return *this;
38916       }
38917 
38918     public:
38919       vk::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
38920       const void* pNext = nullptr;
38921       vk::ExternalMemoryHandleTypeFlagBits handleType;
38922       void* pHostPointer;
38923     };
38924     static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "layout struct and wrapper have different size!" );
38925   }
38926 
38927   struct ImportMemoryHostPointerInfoEXT : public layout::ImportMemoryHostPointerInfoEXT
38928   {
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38929     ImportMemoryHostPointerInfoEXT( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
38930                                     void* pHostPointer_ = nullptr )
38931       : layout::ImportMemoryHostPointerInfoEXT( handleType_, pHostPointer_ )
38932     {}
38933 
ImportMemoryHostPointerInfoEXTVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38934     ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs )
38935       : layout::ImportMemoryHostPointerInfoEXT( rhs )
38936     {}
38937 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38938     ImportMemoryHostPointerInfoEXT& operator=( VkImportMemoryHostPointerInfoEXT const & rhs )
38939     {
38940       *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this) = rhs;
38941       return *this;
38942     }
38943 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38944     ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ )
38945     {
38946       pNext = pNext_;
38947       return *this;
38948     }
38949 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38950     ImportMemoryHostPointerInfoEXT & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
38951     {
38952       handleType = handleType_;
38953       return *this;
38954     }
38955 
setPHostPointerVULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38956     ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ )
38957     {
38958       pHostPointer = pHostPointer_;
38959       return *this;
38960     }
38961 
operator VkImportMemoryHostPointerInfoEXT const&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38962     operator VkImportMemoryHostPointerInfoEXT const&() const
38963     {
38964       return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
38965     }
38966 
operator VkImportMemoryHostPointerInfoEXT&VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38967     operator VkImportMemoryHostPointerInfoEXT &()
38968     {
38969       return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
38970     }
38971 
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38972     bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const
38973     {
38974       return ( sType == rhs.sType )
38975           && ( pNext == rhs.pNext )
38976           && ( handleType == rhs.handleType )
38977           && ( pHostPointer == rhs.pHostPointer );
38978     }
38979 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT38980     bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const
38981     {
38982       return !operator==( rhs );
38983     }
38984 
38985   private:
38986     using layout::ImportMemoryHostPointerInfoEXT::sType;
38987   };
38988   static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
38989   static_assert( std::is_standard_layout<ImportMemoryHostPointerInfoEXT>::value, "struct wrapper is not a standard layout!" );
38990 
38991 #ifdef VK_USE_PLATFORM_WIN32_KHR
38992 
38993   namespace layout
38994   {
38995     struct ImportMemoryWin32HandleInfoKHR
38996     {
38997     protected:
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoKHR38998       ImportMemoryWin32HandleInfoKHR( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
38999                                       HANDLE handle_ = 0,
39000                                       LPCWSTR name_ = nullptr )
39001         : handleType( handleType_ )
39002         , handle( handle_ )
39003         , name( name_ )
39004       {}
39005 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoKHR39006       ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs )
39007       {
39008         *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this) = rhs;
39009       }
39010 
operator =VULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoKHR39011       ImportMemoryWin32HandleInfoKHR& operator=( VkImportMemoryWin32HandleInfoKHR const & rhs )
39012       {
39013         *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this) = rhs;
39014         return *this;
39015       }
39016 
39017     public:
39018       vk::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
39019       const void* pNext = nullptr;
39020       vk::ExternalMemoryHandleTypeFlagBits handleType;
39021       HANDLE handle;
39022       LPCWSTR name;
39023     };
39024     static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
39025   }
39026 
39027   struct ImportMemoryWin32HandleInfoKHR : public layout::ImportMemoryWin32HandleInfoKHR
39028   {
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39029     ImportMemoryWin32HandleInfoKHR( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
39030                                     HANDLE handle_ = 0,
39031                                     LPCWSTR name_ = nullptr )
39032       : layout::ImportMemoryWin32HandleInfoKHR( handleType_, handle_, name_ )
39033     {}
39034 
ImportMemoryWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39035     ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs )
39036       : layout::ImportMemoryWin32HandleInfoKHR( rhs )
39037     {}
39038 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39039     ImportMemoryWin32HandleInfoKHR& operator=( VkImportMemoryWin32HandleInfoKHR const & rhs )
39040     {
39041       *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this) = rhs;
39042       return *this;
39043     }
39044 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39045     ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ )
39046     {
39047       pNext = pNext_;
39048       return *this;
39049     }
39050 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39051     ImportMemoryWin32HandleInfoKHR & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
39052     {
39053       handleType = handleType_;
39054       return *this;
39055     }
39056 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39057     ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ )
39058     {
39059       handle = handle_;
39060       return *this;
39061     }
39062 
setNameVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39063     ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ )
39064     {
39065       name = name_;
39066       return *this;
39067     }
39068 
operator VkImportMemoryWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39069     operator VkImportMemoryWin32HandleInfoKHR const&() const
39070     {
39071       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
39072     }
39073 
operator VkImportMemoryWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39074     operator VkImportMemoryWin32HandleInfoKHR &()
39075     {
39076       return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
39077     }
39078 
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39079     bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const
39080     {
39081       return ( sType == rhs.sType )
39082           && ( pNext == rhs.pNext )
39083           && ( handleType == rhs.handleType )
39084           && ( handle == rhs.handle )
39085           && ( name == rhs.name );
39086     }
39087 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR39088     bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const
39089     {
39090       return !operator==( rhs );
39091     }
39092 
39093   private:
39094     using layout::ImportMemoryWin32HandleInfoKHR::sType;
39095   };
39096   static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
39097   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
39098 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
39099 
39100 #ifdef VK_USE_PLATFORM_WIN32_KHR
39101 
39102   namespace layout
39103   {
39104     struct ImportMemoryWin32HandleInfoNV
39105     {
39106     protected:
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoNV39107       ImportMemoryWin32HandleInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleType_ = vk::ExternalMemoryHandleTypeFlagsNV(),
39108                                      HANDLE handle_ = 0 )
39109         : handleType( handleType_ )
39110         , handle( handle_ )
39111       {}
39112 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoNV39113       ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs )
39114       {
39115         *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this) = rhs;
39116       }
39117 
operator =VULKAN_HPP_NAMESPACE::layout::ImportMemoryWin32HandleInfoNV39118       ImportMemoryWin32HandleInfoNV& operator=( VkImportMemoryWin32HandleInfoNV const & rhs )
39119       {
39120         *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this) = rhs;
39121         return *this;
39122       }
39123 
39124     public:
39125       vk::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
39126       const void* pNext = nullptr;
39127       vk::ExternalMemoryHandleTypeFlagsNV handleType;
39128       HANDLE handle;
39129     };
39130     static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "layout struct and wrapper have different size!" );
39131   }
39132 
39133   struct ImportMemoryWin32HandleInfoNV : public layout::ImportMemoryWin32HandleInfoNV
39134   {
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39135     ImportMemoryWin32HandleInfoNV( vk::ExternalMemoryHandleTypeFlagsNV handleType_ = vk::ExternalMemoryHandleTypeFlagsNV(),
39136                                    HANDLE handle_ = 0 )
39137       : layout::ImportMemoryWin32HandleInfoNV( handleType_, handle_ )
39138     {}
39139 
ImportMemoryWin32HandleInfoNVVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39140     ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs )
39141       : layout::ImportMemoryWin32HandleInfoNV( rhs )
39142     {}
39143 
operator =VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39144     ImportMemoryWin32HandleInfoNV& operator=( VkImportMemoryWin32HandleInfoNV const & rhs )
39145     {
39146       *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this) = rhs;
39147       return *this;
39148     }
39149 
setPNextVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39150     ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ )
39151     {
39152       pNext = pNext_;
39153       return *this;
39154     }
39155 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39156     ImportMemoryWin32HandleInfoNV & setHandleType( vk::ExternalMemoryHandleTypeFlagsNV handleType_ )
39157     {
39158       handleType = handleType_;
39159       return *this;
39160     }
39161 
setHandleVULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39162     ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ )
39163     {
39164       handle = handle_;
39165       return *this;
39166     }
39167 
operator VkImportMemoryWin32HandleInfoNV const&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39168     operator VkImportMemoryWin32HandleInfoNV const&() const
39169     {
39170       return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
39171     }
39172 
operator VkImportMemoryWin32HandleInfoNV&VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39173     operator VkImportMemoryWin32HandleInfoNV &()
39174     {
39175       return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
39176     }
39177 
operator ==VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39178     bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const
39179     {
39180       return ( sType == rhs.sType )
39181           && ( pNext == rhs.pNext )
39182           && ( handleType == rhs.handleType )
39183           && ( handle == rhs.handle );
39184     }
39185 
operator !=VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV39186     bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const
39187     {
39188       return !operator==( rhs );
39189     }
39190 
39191   private:
39192     using layout::ImportMemoryWin32HandleInfoNV::sType;
39193   };
39194   static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
39195   static_assert( std::is_standard_layout<ImportMemoryWin32HandleInfoNV>::value, "struct wrapper is not a standard layout!" );
39196 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
39197 
39198   namespace layout
39199   {
39200     struct ImportSemaphoreFdInfoKHR
39201     {
39202     protected:
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportSemaphoreFdInfoKHR39203       ImportSemaphoreFdInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
39204                                 vk::SemaphoreImportFlags flags_ = vk::SemaphoreImportFlags(),
39205                                 vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
39206                                 int fd_ = 0 )
39207         : semaphore( semaphore_ )
39208         , flags( flags_ )
39209         , handleType( handleType_ )
39210         , fd( fd_ )
39211       {}
39212 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportSemaphoreFdInfoKHR39213       ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs )
39214       {
39215         *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this) = rhs;
39216       }
39217 
operator =VULKAN_HPP_NAMESPACE::layout::ImportSemaphoreFdInfoKHR39218       ImportSemaphoreFdInfoKHR& operator=( VkImportSemaphoreFdInfoKHR const & rhs )
39219       {
39220         *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this) = rhs;
39221         return *this;
39222       }
39223 
39224     public:
39225       vk::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
39226       const void* pNext = nullptr;
39227       vk::Semaphore semaphore;
39228       vk::SemaphoreImportFlags flags;
39229       vk::ExternalSemaphoreHandleTypeFlagBits handleType;
39230       int fd;
39231     };
39232     static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "layout struct and wrapper have different size!" );
39233   }
39234 
39235   struct ImportSemaphoreFdInfoKHR : public layout::ImportSemaphoreFdInfoKHR
39236   {
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39237     ImportSemaphoreFdInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
39238                               vk::SemaphoreImportFlags flags_ = vk::SemaphoreImportFlags(),
39239                               vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
39240                               int fd_ = 0 )
39241       : layout::ImportSemaphoreFdInfoKHR( semaphore_, flags_, handleType_, fd_ )
39242     {}
39243 
ImportSemaphoreFdInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39244     ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs )
39245       : layout::ImportSemaphoreFdInfoKHR( rhs )
39246     {}
39247 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39248     ImportSemaphoreFdInfoKHR& operator=( VkImportSemaphoreFdInfoKHR const & rhs )
39249     {
39250       *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this) = rhs;
39251       return *this;
39252     }
39253 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39254     ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ )
39255     {
39256       pNext = pNext_;
39257       return *this;
39258     }
39259 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39260     ImportSemaphoreFdInfoKHR & setSemaphore( vk::Semaphore semaphore_ )
39261     {
39262       semaphore = semaphore_;
39263       return *this;
39264     }
39265 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39266     ImportSemaphoreFdInfoKHR & setFlags( vk::SemaphoreImportFlags flags_ )
39267     {
39268       flags = flags_;
39269       return *this;
39270     }
39271 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39272     ImportSemaphoreFdInfoKHR & setHandleType( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ )
39273     {
39274       handleType = handleType_;
39275       return *this;
39276     }
39277 
setFdVULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39278     ImportSemaphoreFdInfoKHR & setFd( int fd_ )
39279     {
39280       fd = fd_;
39281       return *this;
39282     }
39283 
operator VkImportSemaphoreFdInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39284     operator VkImportSemaphoreFdInfoKHR const&() const
39285     {
39286       return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
39287     }
39288 
operator VkImportSemaphoreFdInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39289     operator VkImportSemaphoreFdInfoKHR &()
39290     {
39291       return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
39292     }
39293 
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39294     bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const
39295     {
39296       return ( sType == rhs.sType )
39297           && ( pNext == rhs.pNext )
39298           && ( semaphore == rhs.semaphore )
39299           && ( flags == rhs.flags )
39300           && ( handleType == rhs.handleType )
39301           && ( fd == rhs.fd );
39302     }
39303 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR39304     bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const
39305     {
39306       return !operator==( rhs );
39307     }
39308 
39309   private:
39310     using layout::ImportSemaphoreFdInfoKHR::sType;
39311   };
39312   static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
39313   static_assert( std::is_standard_layout<ImportSemaphoreFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
39314 
39315 #ifdef VK_USE_PLATFORM_WIN32_KHR
39316 
39317   namespace layout
39318   {
39319     struct ImportSemaphoreWin32HandleInfoKHR
39320     {
39321     protected:
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportSemaphoreWin32HandleInfoKHR39322       ImportSemaphoreWin32HandleInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
39323                                          vk::SemaphoreImportFlags flags_ = vk::SemaphoreImportFlags(),
39324                                          vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
39325                                          HANDLE handle_ = 0,
39326                                          LPCWSTR name_ = nullptr )
39327         : semaphore( semaphore_ )
39328         , flags( flags_ )
39329         , handleType( handleType_ )
39330         , handle( handle_ )
39331         , name( name_ )
39332       {}
39333 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::ImportSemaphoreWin32HandleInfoKHR39334       ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
39335       {
39336         *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
39337       }
39338 
operator =VULKAN_HPP_NAMESPACE::layout::ImportSemaphoreWin32HandleInfoKHR39339       ImportSemaphoreWin32HandleInfoKHR& operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
39340       {
39341         *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
39342         return *this;
39343       }
39344 
39345     public:
39346       vk::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
39347       const void* pNext = nullptr;
39348       vk::Semaphore semaphore;
39349       vk::SemaphoreImportFlags flags;
39350       vk::ExternalSemaphoreHandleTypeFlagBits handleType;
39351       HANDLE handle;
39352       LPCWSTR name;
39353     };
39354     static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
39355   }
39356 
39357   struct ImportSemaphoreWin32HandleInfoKHR : public layout::ImportSemaphoreWin32HandleInfoKHR
39358   {
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39359     ImportSemaphoreWin32HandleInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
39360                                        vk::SemaphoreImportFlags flags_ = vk::SemaphoreImportFlags(),
39361                                        vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
39362                                        HANDLE handle_ = 0,
39363                                        LPCWSTR name_ = nullptr )
39364       : layout::ImportSemaphoreWin32HandleInfoKHR( semaphore_, flags_, handleType_, handle_, name_ )
39365     {}
39366 
ImportSemaphoreWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39367     ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
39368       : layout::ImportSemaphoreWin32HandleInfoKHR( rhs )
39369     {}
39370 
operator =VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39371     ImportSemaphoreWin32HandleInfoKHR& operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
39372     {
39373       *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
39374       return *this;
39375     }
39376 
setPNextVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39377     ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ )
39378     {
39379       pNext = pNext_;
39380       return *this;
39381     }
39382 
setSemaphoreVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39383     ImportSemaphoreWin32HandleInfoKHR & setSemaphore( vk::Semaphore semaphore_ )
39384     {
39385       semaphore = semaphore_;
39386       return *this;
39387     }
39388 
setFlagsVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39389     ImportSemaphoreWin32HandleInfoKHR & setFlags( vk::SemaphoreImportFlags flags_ )
39390     {
39391       flags = flags_;
39392       return *this;
39393     }
39394 
setHandleTypeVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39395     ImportSemaphoreWin32HandleInfoKHR & setHandleType( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ )
39396     {
39397       handleType = handleType_;
39398       return *this;
39399     }
39400 
setHandleVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39401     ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ )
39402     {
39403       handle = handle_;
39404       return *this;
39405     }
39406 
setNameVULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39407     ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ )
39408     {
39409       name = name_;
39410       return *this;
39411     }
39412 
operator VkImportSemaphoreWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39413     operator VkImportSemaphoreWin32HandleInfoKHR const&() const
39414     {
39415       return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
39416     }
39417 
operator VkImportSemaphoreWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39418     operator VkImportSemaphoreWin32HandleInfoKHR &()
39419     {
39420       return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
39421     }
39422 
operator ==VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39423     bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const
39424     {
39425       return ( sType == rhs.sType )
39426           && ( pNext == rhs.pNext )
39427           && ( semaphore == rhs.semaphore )
39428           && ( flags == rhs.flags )
39429           && ( handleType == rhs.handleType )
39430           && ( handle == rhs.handle )
39431           && ( name == rhs.name );
39432     }
39433 
operator !=VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR39434     bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const
39435     {
39436       return !operator==( rhs );
39437     }
39438 
39439   private:
39440     using layout::ImportSemaphoreWin32HandleInfoKHR::sType;
39441   };
39442   static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
39443   static_assert( std::is_standard_layout<ImportSemaphoreWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
39444 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
39445 
39446   struct IndirectCommandsLayoutTokenNVX
39447   {
IndirectCommandsLayoutTokenNVXVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39448     IndirectCommandsLayoutTokenNVX( vk::IndirectCommandsTokenTypeNVX tokenType_ = vk::IndirectCommandsTokenTypeNVX::ePipeline,
39449                                     uint32_t bindingUnit_ = 0,
39450                                     uint32_t dynamicCount_ = 0,
39451                                     uint32_t divisor_ = 0 )
39452         : tokenType( tokenType_ )
39453         , bindingUnit( bindingUnit_ )
39454         , dynamicCount( dynamicCount_ )
39455         , divisor( divisor_ )
39456     {}
39457 
IndirectCommandsLayoutTokenNVXVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39458     IndirectCommandsLayoutTokenNVX( VkIndirectCommandsLayoutTokenNVX const & rhs )
39459     {
39460       *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>(this) = rhs;
39461     }
39462 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39463     IndirectCommandsLayoutTokenNVX& operator=( VkIndirectCommandsLayoutTokenNVX const & rhs )
39464     {
39465       *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>(this) = rhs;
39466       return *this;
39467     }
39468 
setTokenTypeVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39469     IndirectCommandsLayoutTokenNVX & setTokenType( vk::IndirectCommandsTokenTypeNVX tokenType_ )
39470     {
39471       tokenType = tokenType_;
39472       return *this;
39473     }
39474 
setBindingUnitVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39475     IndirectCommandsLayoutTokenNVX & setBindingUnit( uint32_t bindingUnit_ )
39476     {
39477       bindingUnit = bindingUnit_;
39478       return *this;
39479     }
39480 
setDynamicCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39481     IndirectCommandsLayoutTokenNVX & setDynamicCount( uint32_t dynamicCount_ )
39482     {
39483       dynamicCount = dynamicCount_;
39484       return *this;
39485     }
39486 
setDivisorVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39487     IndirectCommandsLayoutTokenNVX & setDivisor( uint32_t divisor_ )
39488     {
39489       divisor = divisor_;
39490       return *this;
39491     }
39492 
operator VkIndirectCommandsLayoutTokenNVX const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39493     operator VkIndirectCommandsLayoutTokenNVX const&() const
39494     {
39495       return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNVX*>( this );
39496     }
39497 
operator VkIndirectCommandsLayoutTokenNVX&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39498     operator VkIndirectCommandsLayoutTokenNVX &()
39499     {
39500       return *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>( this );
39501     }
39502 
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39503     bool operator==( IndirectCommandsLayoutTokenNVX const& rhs ) const
39504     {
39505       return ( tokenType == rhs.tokenType )
39506           && ( bindingUnit == rhs.bindingUnit )
39507           && ( dynamicCount == rhs.dynamicCount )
39508           && ( divisor == rhs.divisor );
39509     }
39510 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX39511     bool operator!=( IndirectCommandsLayoutTokenNVX const& rhs ) const
39512     {
39513       return !operator==( rhs );
39514     }
39515 
39516   public:
39517     vk::IndirectCommandsTokenTypeNVX tokenType;
39518     uint32_t bindingUnit;
39519     uint32_t dynamicCount;
39520     uint32_t divisor;
39521   };
39522   static_assert( sizeof( IndirectCommandsLayoutTokenNVX ) == sizeof( VkIndirectCommandsLayoutTokenNVX ), "struct and wrapper have different size!" );
39523   static_assert( std::is_standard_layout<IndirectCommandsLayoutTokenNVX>::value, "struct wrapper is not a standard layout!" );
39524 
39525   namespace layout
39526   {
39527     struct IndirectCommandsLayoutCreateInfoNVX
39528     {
39529     protected:
IndirectCommandsLayoutCreateInfoNVXVULKAN_HPP_NAMESPACE::layout::IndirectCommandsLayoutCreateInfoNVX39530       IndirectCommandsLayoutCreateInfoNVX( vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
39531                                            vk::IndirectCommandsLayoutUsageFlagsNVX flags_ = vk::IndirectCommandsLayoutUsageFlagsNVX(),
39532                                            uint32_t tokenCount_ = 0,
39533                                            const vk::IndirectCommandsLayoutTokenNVX* pTokens_ = nullptr )
39534         : pipelineBindPoint( pipelineBindPoint_ )
39535         , flags( flags_ )
39536         , tokenCount( tokenCount_ )
39537         , pTokens( pTokens_ )
39538       {}
39539 
IndirectCommandsLayoutCreateInfoNVXVULKAN_HPP_NAMESPACE::layout::IndirectCommandsLayoutCreateInfoNVX39540       IndirectCommandsLayoutCreateInfoNVX( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
39541       {
39542         *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this) = rhs;
39543       }
39544 
operator =VULKAN_HPP_NAMESPACE::layout::IndirectCommandsLayoutCreateInfoNVX39545       IndirectCommandsLayoutCreateInfoNVX& operator=( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
39546       {
39547         *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this) = rhs;
39548         return *this;
39549       }
39550 
39551     public:
39552       vk::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNVX;
39553       const void* pNext = nullptr;
39554       vk::PipelineBindPoint pipelineBindPoint;
39555       vk::IndirectCommandsLayoutUsageFlagsNVX flags;
39556       uint32_t tokenCount;
39557       const vk::IndirectCommandsLayoutTokenNVX* pTokens;
39558     };
39559     static_assert( sizeof( IndirectCommandsLayoutCreateInfoNVX ) == sizeof( VkIndirectCommandsLayoutCreateInfoNVX ), "layout struct and wrapper have different size!" );
39560   }
39561 
39562   struct IndirectCommandsLayoutCreateInfoNVX : public layout::IndirectCommandsLayoutCreateInfoNVX
39563   {
IndirectCommandsLayoutCreateInfoNVXVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39564     IndirectCommandsLayoutCreateInfoNVX( vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
39565                                          vk::IndirectCommandsLayoutUsageFlagsNVX flags_ = vk::IndirectCommandsLayoutUsageFlagsNVX(),
39566                                          uint32_t tokenCount_ = 0,
39567                                          const vk::IndirectCommandsLayoutTokenNVX* pTokens_ = nullptr )
39568       : layout::IndirectCommandsLayoutCreateInfoNVX( pipelineBindPoint_, flags_, tokenCount_, pTokens_ )
39569     {}
39570 
IndirectCommandsLayoutCreateInfoNVXVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39571     IndirectCommandsLayoutCreateInfoNVX( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
39572       : layout::IndirectCommandsLayoutCreateInfoNVX( rhs )
39573     {}
39574 
operator =VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39575     IndirectCommandsLayoutCreateInfoNVX& operator=( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
39576     {
39577       *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this) = rhs;
39578       return *this;
39579     }
39580 
setPNextVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39581     IndirectCommandsLayoutCreateInfoNVX & setPNext( const void* pNext_ )
39582     {
39583       pNext = pNext_;
39584       return *this;
39585     }
39586 
setPipelineBindPointVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39587     IndirectCommandsLayoutCreateInfoNVX & setPipelineBindPoint( vk::PipelineBindPoint pipelineBindPoint_ )
39588     {
39589       pipelineBindPoint = pipelineBindPoint_;
39590       return *this;
39591     }
39592 
setFlagsVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39593     IndirectCommandsLayoutCreateInfoNVX & setFlags( vk::IndirectCommandsLayoutUsageFlagsNVX flags_ )
39594     {
39595       flags = flags_;
39596       return *this;
39597     }
39598 
setTokenCountVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39599     IndirectCommandsLayoutCreateInfoNVX & setTokenCount( uint32_t tokenCount_ )
39600     {
39601       tokenCount = tokenCount_;
39602       return *this;
39603     }
39604 
setPTokensVULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39605     IndirectCommandsLayoutCreateInfoNVX & setPTokens( const vk::IndirectCommandsLayoutTokenNVX* pTokens_ )
39606     {
39607       pTokens = pTokens_;
39608       return *this;
39609     }
39610 
operator VkIndirectCommandsLayoutCreateInfoNVX const&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39611     operator VkIndirectCommandsLayoutCreateInfoNVX const&() const
39612     {
39613       return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( this );
39614     }
39615 
operator VkIndirectCommandsLayoutCreateInfoNVX&VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39616     operator VkIndirectCommandsLayoutCreateInfoNVX &()
39617     {
39618       return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>( this );
39619     }
39620 
operator ==VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39621     bool operator==( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const
39622     {
39623       return ( sType == rhs.sType )
39624           && ( pNext == rhs.pNext )
39625           && ( pipelineBindPoint == rhs.pipelineBindPoint )
39626           && ( flags == rhs.flags )
39627           && ( tokenCount == rhs.tokenCount )
39628           && ( pTokens == rhs.pTokens );
39629     }
39630 
operator !=VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX39631     bool operator!=( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const
39632     {
39633       return !operator==( rhs );
39634     }
39635 
39636   private:
39637     using layout::IndirectCommandsLayoutCreateInfoNVX::sType;
39638   };
39639   static_assert( sizeof( IndirectCommandsLayoutCreateInfoNVX ) == sizeof( VkIndirectCommandsLayoutCreateInfoNVX ), "struct and wrapper have different size!" );
39640   static_assert( std::is_standard_layout<IndirectCommandsLayoutCreateInfoNVX>::value, "struct wrapper is not a standard layout!" );
39641 
39642   namespace layout
39643   {
39644     struct InitializePerformanceApiInfoINTEL
39645     {
39646     protected:
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::layout::InitializePerformanceApiInfoINTEL39647       InitializePerformanceApiInfoINTEL( void* pUserData_ = nullptr )
39648         : pUserData( pUserData_ )
39649       {}
39650 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::layout::InitializePerformanceApiInfoINTEL39651       InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs )
39652       {
39653         *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>(this) = rhs;
39654       }
39655 
operator =VULKAN_HPP_NAMESPACE::layout::InitializePerformanceApiInfoINTEL39656       InitializePerformanceApiInfoINTEL& operator=( VkInitializePerformanceApiInfoINTEL const & rhs )
39657       {
39658         *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>(this) = rhs;
39659         return *this;
39660       }
39661 
39662     public:
39663       vk::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
39664       const void* pNext = nullptr;
39665       void* pUserData;
39666     };
39667     static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "layout struct and wrapper have different size!" );
39668   }
39669 
39670   struct InitializePerformanceApiInfoINTEL : public layout::InitializePerformanceApiInfoINTEL
39671   {
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39672     InitializePerformanceApiInfoINTEL( void* pUserData_ = nullptr )
39673       : layout::InitializePerformanceApiInfoINTEL( pUserData_ )
39674     {}
39675 
InitializePerformanceApiInfoINTELVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39676     InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs )
39677       : layout::InitializePerformanceApiInfoINTEL( rhs )
39678     {}
39679 
operator =VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39680     InitializePerformanceApiInfoINTEL& operator=( VkInitializePerformanceApiInfoINTEL const & rhs )
39681     {
39682       *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>(this) = rhs;
39683       return *this;
39684     }
39685 
setPNextVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39686     InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ )
39687     {
39688       pNext = pNext_;
39689       return *this;
39690     }
39691 
setPUserDataVULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39692     InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ )
39693     {
39694       pUserData = pUserData_;
39695       return *this;
39696     }
39697 
operator VkInitializePerformanceApiInfoINTEL const&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39698     operator VkInitializePerformanceApiInfoINTEL const&() const
39699     {
39700       return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
39701     }
39702 
operator VkInitializePerformanceApiInfoINTEL&VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39703     operator VkInitializePerformanceApiInfoINTEL &()
39704     {
39705       return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
39706     }
39707 
operator ==VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39708     bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const
39709     {
39710       return ( sType == rhs.sType )
39711           && ( pNext == rhs.pNext )
39712           && ( pUserData == rhs.pUserData );
39713     }
39714 
operator !=VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL39715     bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const
39716     {
39717       return !operator==( rhs );
39718     }
39719 
39720   private:
39721     using layout::InitializePerformanceApiInfoINTEL::sType;
39722   };
39723   static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
39724   static_assert( std::is_standard_layout<InitializePerformanceApiInfoINTEL>::value, "struct wrapper is not a standard layout!" );
39725 
39726   struct InputAttachmentAspectReference
39727   {
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39728     InputAttachmentAspectReference( uint32_t subpass_ = 0,
39729                                     uint32_t inputAttachmentIndex_ = 0,
39730                                     vk::ImageAspectFlags aspectMask_ = vk::ImageAspectFlags() )
39731         : subpass( subpass_ )
39732         , inputAttachmentIndex( inputAttachmentIndex_ )
39733         , aspectMask( aspectMask_ )
39734     {}
39735 
InputAttachmentAspectReferenceVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39736     InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs )
39737     {
39738       *reinterpret_cast<VkInputAttachmentAspectReference*>(this) = rhs;
39739     }
39740 
operator =VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39741     InputAttachmentAspectReference& operator=( VkInputAttachmentAspectReference const & rhs )
39742     {
39743       *reinterpret_cast<VkInputAttachmentAspectReference*>(this) = rhs;
39744       return *this;
39745     }
39746 
setSubpassVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39747     InputAttachmentAspectReference & setSubpass( uint32_t subpass_ )
39748     {
39749       subpass = subpass_;
39750       return *this;
39751     }
39752 
setInputAttachmentIndexVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39753     InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ )
39754     {
39755       inputAttachmentIndex = inputAttachmentIndex_;
39756       return *this;
39757     }
39758 
setAspectMaskVULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39759     InputAttachmentAspectReference & setAspectMask( vk::ImageAspectFlags aspectMask_ )
39760     {
39761       aspectMask = aspectMask_;
39762       return *this;
39763     }
39764 
operator VkInputAttachmentAspectReference const&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39765     operator VkInputAttachmentAspectReference const&() const
39766     {
39767       return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
39768     }
39769 
operator VkInputAttachmentAspectReference&VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39770     operator VkInputAttachmentAspectReference &()
39771     {
39772       return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
39773     }
39774 
operator ==VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39775     bool operator==( InputAttachmentAspectReference const& rhs ) const
39776     {
39777       return ( subpass == rhs.subpass )
39778           && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
39779           && ( aspectMask == rhs.aspectMask );
39780     }
39781 
operator !=VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference39782     bool operator!=( InputAttachmentAspectReference const& rhs ) const
39783     {
39784       return !operator==( rhs );
39785     }
39786 
39787   public:
39788     uint32_t subpass;
39789     uint32_t inputAttachmentIndex;
39790     vk::ImageAspectFlags aspectMask;
39791   };
39792   static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
39793   static_assert( std::is_standard_layout<InputAttachmentAspectReference>::value, "struct wrapper is not a standard layout!" );
39794 
39795   namespace layout
39796   {
39797     struct InstanceCreateInfo
39798     {
39799     protected:
InstanceCreateInfoVULKAN_HPP_NAMESPACE::layout::InstanceCreateInfo39800       InstanceCreateInfo( vk::InstanceCreateFlags flags_ = vk::InstanceCreateFlags(),
39801                           const vk::ApplicationInfo* pApplicationInfo_ = nullptr,
39802                           uint32_t enabledLayerCount_ = 0,
39803                           const char* const* ppEnabledLayerNames_ = nullptr,
39804                           uint32_t enabledExtensionCount_ = 0,
39805                           const char* const* ppEnabledExtensionNames_ = nullptr )
39806         : flags( flags_ )
39807         , pApplicationInfo( pApplicationInfo_ )
39808         , enabledLayerCount( enabledLayerCount_ )
39809         , ppEnabledLayerNames( ppEnabledLayerNames_ )
39810         , enabledExtensionCount( enabledExtensionCount_ )
39811         , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
39812       {}
39813 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::layout::InstanceCreateInfo39814       InstanceCreateInfo( VkInstanceCreateInfo const & rhs )
39815       {
39816         *reinterpret_cast<VkInstanceCreateInfo*>(this) = rhs;
39817       }
39818 
operator =VULKAN_HPP_NAMESPACE::layout::InstanceCreateInfo39819       InstanceCreateInfo& operator=( VkInstanceCreateInfo const & rhs )
39820       {
39821         *reinterpret_cast<VkInstanceCreateInfo*>(this) = rhs;
39822         return *this;
39823       }
39824 
39825     public:
39826       vk::StructureType sType = StructureType::eInstanceCreateInfo;
39827       const void* pNext = nullptr;
39828       vk::InstanceCreateFlags flags;
39829       const vk::ApplicationInfo* pApplicationInfo;
39830       uint32_t enabledLayerCount;
39831       const char* const* ppEnabledLayerNames;
39832       uint32_t enabledExtensionCount;
39833       const char* const* ppEnabledExtensionNames;
39834     };
39835     static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "layout struct and wrapper have different size!" );
39836   }
39837 
39838   struct InstanceCreateInfo : public layout::InstanceCreateInfo
39839   {
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo39840     InstanceCreateInfo( vk::InstanceCreateFlags flags_ = vk::InstanceCreateFlags(),
39841                         const vk::ApplicationInfo* pApplicationInfo_ = nullptr,
39842                         uint32_t enabledLayerCount_ = 0,
39843                         const char* const* ppEnabledLayerNames_ = nullptr,
39844                         uint32_t enabledExtensionCount_ = 0,
39845                         const char* const* ppEnabledExtensionNames_ = nullptr )
39846       : layout::InstanceCreateInfo( flags_, pApplicationInfo_, enabledLayerCount_, ppEnabledLayerNames_, enabledExtensionCount_, ppEnabledExtensionNames_ )
39847     {}
39848 
InstanceCreateInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo39849     InstanceCreateInfo( VkInstanceCreateInfo const & rhs )
39850       : layout::InstanceCreateInfo( rhs )
39851     {}
39852 
operator =VULKAN_HPP_NAMESPACE::InstanceCreateInfo39853     InstanceCreateInfo& operator=( VkInstanceCreateInfo const & rhs )
39854     {
39855       *reinterpret_cast<VkInstanceCreateInfo*>(this) = rhs;
39856       return *this;
39857     }
39858 
setPNextVULKAN_HPP_NAMESPACE::InstanceCreateInfo39859     InstanceCreateInfo & setPNext( const void* pNext_ )
39860     {
39861       pNext = pNext_;
39862       return *this;
39863     }
39864 
setFlagsVULKAN_HPP_NAMESPACE::InstanceCreateInfo39865     InstanceCreateInfo & setFlags( vk::InstanceCreateFlags flags_ )
39866     {
39867       flags = flags_;
39868       return *this;
39869     }
39870 
setPApplicationInfoVULKAN_HPP_NAMESPACE::InstanceCreateInfo39871     InstanceCreateInfo & setPApplicationInfo( const vk::ApplicationInfo* pApplicationInfo_ )
39872     {
39873       pApplicationInfo = pApplicationInfo_;
39874       return *this;
39875     }
39876 
setEnabledLayerCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo39877     InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ )
39878     {
39879       enabledLayerCount = enabledLayerCount_;
39880       return *this;
39881     }
39882 
setPpEnabledLayerNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo39883     InstanceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ )
39884     {
39885       ppEnabledLayerNames = ppEnabledLayerNames_;
39886       return *this;
39887     }
39888 
setEnabledExtensionCountVULKAN_HPP_NAMESPACE::InstanceCreateInfo39889     InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ )
39890     {
39891       enabledExtensionCount = enabledExtensionCount_;
39892       return *this;
39893     }
39894 
setPpEnabledExtensionNamesVULKAN_HPP_NAMESPACE::InstanceCreateInfo39895     InstanceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ )
39896     {
39897       ppEnabledExtensionNames = ppEnabledExtensionNames_;
39898       return *this;
39899     }
39900 
operator VkInstanceCreateInfo const&VULKAN_HPP_NAMESPACE::InstanceCreateInfo39901     operator VkInstanceCreateInfo const&() const
39902     {
39903       return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
39904     }
39905 
operator VkInstanceCreateInfo&VULKAN_HPP_NAMESPACE::InstanceCreateInfo39906     operator VkInstanceCreateInfo &()
39907     {
39908       return *reinterpret_cast<VkInstanceCreateInfo*>( this );
39909     }
39910 
operator ==VULKAN_HPP_NAMESPACE::InstanceCreateInfo39911     bool operator==( InstanceCreateInfo const& rhs ) const
39912     {
39913       return ( sType == rhs.sType )
39914           && ( pNext == rhs.pNext )
39915           && ( flags == rhs.flags )
39916           && ( pApplicationInfo == rhs.pApplicationInfo )
39917           && ( enabledLayerCount == rhs.enabledLayerCount )
39918           && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
39919           && ( enabledExtensionCount == rhs.enabledExtensionCount )
39920           && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
39921     }
39922 
operator !=VULKAN_HPP_NAMESPACE::InstanceCreateInfo39923     bool operator!=( InstanceCreateInfo const& rhs ) const
39924     {
39925       return !operator==( rhs );
39926     }
39927 
39928   private:
39929     using layout::InstanceCreateInfo::sType;
39930   };
39931   static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
39932   static_assert( std::is_standard_layout<InstanceCreateInfo>::value, "struct wrapper is not a standard layout!" );
39933 
39934   struct LayerProperties
39935   {
operator VkLayerProperties const&VULKAN_HPP_NAMESPACE::LayerProperties39936     operator VkLayerProperties const&() const
39937     {
39938       return *reinterpret_cast<const VkLayerProperties*>( this );
39939     }
39940 
operator VkLayerProperties&VULKAN_HPP_NAMESPACE::LayerProperties39941     operator VkLayerProperties &()
39942     {
39943       return *reinterpret_cast<VkLayerProperties*>( this );
39944     }
39945 
operator ==VULKAN_HPP_NAMESPACE::LayerProperties39946     bool operator==( LayerProperties const& rhs ) const
39947     {
39948       return ( memcmp( layerName, rhs.layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 )
39949           && ( specVersion == rhs.specVersion )
39950           && ( implementationVersion == rhs.implementationVersion )
39951           && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 );
39952     }
39953 
operator !=VULKAN_HPP_NAMESPACE::LayerProperties39954     bool operator!=( LayerProperties const& rhs ) const
39955     {
39956       return !operator==( rhs );
39957     }
39958 
39959   public:
39960     char layerName[VK_MAX_EXTENSION_NAME_SIZE];
39961     uint32_t specVersion;
39962     uint32_t implementationVersion;
39963     char description[VK_MAX_DESCRIPTION_SIZE];
39964   };
39965   static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
39966   static_assert( std::is_standard_layout<LayerProperties>::value, "struct wrapper is not a standard layout!" );
39967 
39968 #ifdef VK_USE_PLATFORM_MACOS_MVK
39969 
39970   namespace layout
39971   {
39972     struct MacOSSurfaceCreateInfoMVK
39973     {
39974     protected:
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::layout::MacOSSurfaceCreateInfoMVK39975       MacOSSurfaceCreateInfoMVK( vk::MacOSSurfaceCreateFlagsMVK flags_ = vk::MacOSSurfaceCreateFlagsMVK(),
39976                                  const void* pView_ = nullptr )
39977         : flags( flags_ )
39978         , pView( pView_ )
39979       {}
39980 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::layout::MacOSSurfaceCreateInfoMVK39981       MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs )
39982       {
39983         *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this) = rhs;
39984       }
39985 
operator =VULKAN_HPP_NAMESPACE::layout::MacOSSurfaceCreateInfoMVK39986       MacOSSurfaceCreateInfoMVK& operator=( VkMacOSSurfaceCreateInfoMVK const & rhs )
39987       {
39988         *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this) = rhs;
39989         return *this;
39990       }
39991 
39992     public:
39993       vk::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
39994       const void* pNext = nullptr;
39995       vk::MacOSSurfaceCreateFlagsMVK flags;
39996       const void* pView;
39997     };
39998     static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "layout struct and wrapper have different size!" );
39999   }
40000 
40001   struct MacOSSurfaceCreateInfoMVK : public layout::MacOSSurfaceCreateInfoMVK
40002   {
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40003     MacOSSurfaceCreateInfoMVK( vk::MacOSSurfaceCreateFlagsMVK flags_ = vk::MacOSSurfaceCreateFlagsMVK(),
40004                                const void* pView_ = nullptr )
40005       : layout::MacOSSurfaceCreateInfoMVK( flags_, pView_ )
40006     {}
40007 
MacOSSurfaceCreateInfoMVKVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40008     MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs )
40009       : layout::MacOSSurfaceCreateInfoMVK( rhs )
40010     {}
40011 
operator =VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40012     MacOSSurfaceCreateInfoMVK& operator=( VkMacOSSurfaceCreateInfoMVK const & rhs )
40013     {
40014       *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this) = rhs;
40015       return *this;
40016     }
40017 
setPNextVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40018     MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ )
40019     {
40020       pNext = pNext_;
40021       return *this;
40022     }
40023 
setFlagsVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40024     MacOSSurfaceCreateInfoMVK & setFlags( vk::MacOSSurfaceCreateFlagsMVK flags_ )
40025     {
40026       flags = flags_;
40027       return *this;
40028     }
40029 
setPViewVULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40030     MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ )
40031     {
40032       pView = pView_;
40033       return *this;
40034     }
40035 
operator VkMacOSSurfaceCreateInfoMVK const&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40036     operator VkMacOSSurfaceCreateInfoMVK const&() const
40037     {
40038       return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
40039     }
40040 
operator VkMacOSSurfaceCreateInfoMVK&VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40041     operator VkMacOSSurfaceCreateInfoMVK &()
40042     {
40043       return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
40044     }
40045 
operator ==VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40046     bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const
40047     {
40048       return ( sType == rhs.sType )
40049           && ( pNext == rhs.pNext )
40050           && ( flags == rhs.flags )
40051           && ( pView == rhs.pView );
40052     }
40053 
operator !=VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK40054     bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const
40055     {
40056       return !operator==( rhs );
40057     }
40058 
40059   private:
40060     using layout::MacOSSurfaceCreateInfoMVK::sType;
40061   };
40062   static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
40063   static_assert( std::is_standard_layout<MacOSSurfaceCreateInfoMVK>::value, "struct wrapper is not a standard layout!" );
40064 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
40065 
40066   namespace layout
40067   {
40068     struct MappedMemoryRange
40069     {
40070     protected:
MappedMemoryRangeVULKAN_HPP_NAMESPACE::layout::MappedMemoryRange40071       MappedMemoryRange( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40072                          vk::DeviceSize offset_ = 0,
40073                          vk::DeviceSize size_ = 0 )
40074         : memory( memory_ )
40075         , offset( offset_ )
40076         , size( size_ )
40077       {}
40078 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::layout::MappedMemoryRange40079       MappedMemoryRange( VkMappedMemoryRange const & rhs )
40080       {
40081         *reinterpret_cast<VkMappedMemoryRange*>(this) = rhs;
40082       }
40083 
operator =VULKAN_HPP_NAMESPACE::layout::MappedMemoryRange40084       MappedMemoryRange& operator=( VkMappedMemoryRange const & rhs )
40085       {
40086         *reinterpret_cast<VkMappedMemoryRange*>(this) = rhs;
40087         return *this;
40088       }
40089 
40090     public:
40091       vk::StructureType sType = StructureType::eMappedMemoryRange;
40092       const void* pNext = nullptr;
40093       vk::DeviceMemory memory;
40094       vk::DeviceSize offset;
40095       vk::DeviceSize size;
40096     };
40097     static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "layout struct and wrapper have different size!" );
40098   }
40099 
40100   struct MappedMemoryRange : public layout::MappedMemoryRange
40101   {
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange40102     MappedMemoryRange( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40103                        vk::DeviceSize offset_ = 0,
40104                        vk::DeviceSize size_ = 0 )
40105       : layout::MappedMemoryRange( memory_, offset_, size_ )
40106     {}
40107 
MappedMemoryRangeVULKAN_HPP_NAMESPACE::MappedMemoryRange40108     MappedMemoryRange( VkMappedMemoryRange const & rhs )
40109       : layout::MappedMemoryRange( rhs )
40110     {}
40111 
operator =VULKAN_HPP_NAMESPACE::MappedMemoryRange40112     MappedMemoryRange& operator=( VkMappedMemoryRange const & rhs )
40113     {
40114       *reinterpret_cast<VkMappedMemoryRange*>(this) = rhs;
40115       return *this;
40116     }
40117 
setPNextVULKAN_HPP_NAMESPACE::MappedMemoryRange40118     MappedMemoryRange & setPNext( const void* pNext_ )
40119     {
40120       pNext = pNext_;
40121       return *this;
40122     }
40123 
setMemoryVULKAN_HPP_NAMESPACE::MappedMemoryRange40124     MappedMemoryRange & setMemory( vk::DeviceMemory memory_ )
40125     {
40126       memory = memory_;
40127       return *this;
40128     }
40129 
setOffsetVULKAN_HPP_NAMESPACE::MappedMemoryRange40130     MappedMemoryRange & setOffset( vk::DeviceSize offset_ )
40131     {
40132       offset = offset_;
40133       return *this;
40134     }
40135 
setSizeVULKAN_HPP_NAMESPACE::MappedMemoryRange40136     MappedMemoryRange & setSize( vk::DeviceSize size_ )
40137     {
40138       size = size_;
40139       return *this;
40140     }
40141 
operator VkMappedMemoryRange const&VULKAN_HPP_NAMESPACE::MappedMemoryRange40142     operator VkMappedMemoryRange const&() const
40143     {
40144       return *reinterpret_cast<const VkMappedMemoryRange*>( this );
40145     }
40146 
operator VkMappedMemoryRange&VULKAN_HPP_NAMESPACE::MappedMemoryRange40147     operator VkMappedMemoryRange &()
40148     {
40149       return *reinterpret_cast<VkMappedMemoryRange*>( this );
40150     }
40151 
operator ==VULKAN_HPP_NAMESPACE::MappedMemoryRange40152     bool operator==( MappedMemoryRange const& rhs ) const
40153     {
40154       return ( sType == rhs.sType )
40155           && ( pNext == rhs.pNext )
40156           && ( memory == rhs.memory )
40157           && ( offset == rhs.offset )
40158           && ( size == rhs.size );
40159     }
40160 
operator !=VULKAN_HPP_NAMESPACE::MappedMemoryRange40161     bool operator!=( MappedMemoryRange const& rhs ) const
40162     {
40163       return !operator==( rhs );
40164     }
40165 
40166   private:
40167     using layout::MappedMemoryRange::sType;
40168   };
40169   static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
40170   static_assert( std::is_standard_layout<MappedMemoryRange>::value, "struct wrapper is not a standard layout!" );
40171 
40172   namespace layout
40173   {
40174     struct MemoryAllocateFlagsInfo
40175     {
40176     protected:
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::layout::MemoryAllocateFlagsInfo40177       MemoryAllocateFlagsInfo( vk::MemoryAllocateFlags flags_ = vk::MemoryAllocateFlags(),
40178                                uint32_t deviceMask_ = 0 )
40179         : flags( flags_ )
40180         , deviceMask( deviceMask_ )
40181       {}
40182 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::layout::MemoryAllocateFlagsInfo40183       MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs )
40184       {
40185         *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this) = rhs;
40186       }
40187 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryAllocateFlagsInfo40188       MemoryAllocateFlagsInfo& operator=( VkMemoryAllocateFlagsInfo const & rhs )
40189       {
40190         *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this) = rhs;
40191         return *this;
40192       }
40193 
40194     public:
40195       vk::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
40196       const void* pNext = nullptr;
40197       vk::MemoryAllocateFlags flags;
40198       uint32_t deviceMask;
40199     };
40200     static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "layout struct and wrapper have different size!" );
40201   }
40202 
40203   struct MemoryAllocateFlagsInfo : public layout::MemoryAllocateFlagsInfo
40204   {
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40205     MemoryAllocateFlagsInfo( vk::MemoryAllocateFlags flags_ = vk::MemoryAllocateFlags(),
40206                              uint32_t deviceMask_ = 0 )
40207       : layout::MemoryAllocateFlagsInfo( flags_, deviceMask_ )
40208     {}
40209 
MemoryAllocateFlagsInfoVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40210     MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs )
40211       : layout::MemoryAllocateFlagsInfo( rhs )
40212     {}
40213 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40214     MemoryAllocateFlagsInfo& operator=( VkMemoryAllocateFlagsInfo const & rhs )
40215     {
40216       *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this) = rhs;
40217       return *this;
40218     }
40219 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40220     MemoryAllocateFlagsInfo & setPNext( const void* pNext_ )
40221     {
40222       pNext = pNext_;
40223       return *this;
40224     }
40225 
setFlagsVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40226     MemoryAllocateFlagsInfo & setFlags( vk::MemoryAllocateFlags flags_ )
40227     {
40228       flags = flags_;
40229       return *this;
40230     }
40231 
setDeviceMaskVULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40232     MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ )
40233     {
40234       deviceMask = deviceMask_;
40235       return *this;
40236     }
40237 
operator VkMemoryAllocateFlagsInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40238     operator VkMemoryAllocateFlagsInfo const&() const
40239     {
40240       return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
40241     }
40242 
operator VkMemoryAllocateFlagsInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40243     operator VkMemoryAllocateFlagsInfo &()
40244     {
40245       return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
40246     }
40247 
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40248     bool operator==( MemoryAllocateFlagsInfo const& rhs ) const
40249     {
40250       return ( sType == rhs.sType )
40251           && ( pNext == rhs.pNext )
40252           && ( flags == rhs.flags )
40253           && ( deviceMask == rhs.deviceMask );
40254     }
40255 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo40256     bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const
40257     {
40258       return !operator==( rhs );
40259     }
40260 
40261   private:
40262     using layout::MemoryAllocateFlagsInfo::sType;
40263   };
40264   static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
40265   static_assert( std::is_standard_layout<MemoryAllocateFlagsInfo>::value, "struct wrapper is not a standard layout!" );
40266 
40267   namespace layout
40268   {
40269     struct MemoryAllocateInfo
40270     {
40271     protected:
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::layout::MemoryAllocateInfo40272       MemoryAllocateInfo( vk::DeviceSize allocationSize_ = 0,
40273                           uint32_t memoryTypeIndex_ = 0 )
40274         : allocationSize( allocationSize_ )
40275         , memoryTypeIndex( memoryTypeIndex_ )
40276       {}
40277 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::layout::MemoryAllocateInfo40278       MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs )
40279       {
40280         *reinterpret_cast<VkMemoryAllocateInfo*>(this) = rhs;
40281       }
40282 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryAllocateInfo40283       MemoryAllocateInfo& operator=( VkMemoryAllocateInfo const & rhs )
40284       {
40285         *reinterpret_cast<VkMemoryAllocateInfo*>(this) = rhs;
40286         return *this;
40287       }
40288 
40289     public:
40290       vk::StructureType sType = StructureType::eMemoryAllocateInfo;
40291       const void* pNext = nullptr;
40292       vk::DeviceSize allocationSize;
40293       uint32_t memoryTypeIndex;
40294     };
40295     static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "layout struct and wrapper have different size!" );
40296   }
40297 
40298   struct MemoryAllocateInfo : public layout::MemoryAllocateInfo
40299   {
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo40300     MemoryAllocateInfo( vk::DeviceSize allocationSize_ = 0,
40301                         uint32_t memoryTypeIndex_ = 0 )
40302       : layout::MemoryAllocateInfo( allocationSize_, memoryTypeIndex_ )
40303     {}
40304 
MemoryAllocateInfoVULKAN_HPP_NAMESPACE::MemoryAllocateInfo40305     MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs )
40306       : layout::MemoryAllocateInfo( rhs )
40307     {}
40308 
operator =VULKAN_HPP_NAMESPACE::MemoryAllocateInfo40309     MemoryAllocateInfo& operator=( VkMemoryAllocateInfo const & rhs )
40310     {
40311       *reinterpret_cast<VkMemoryAllocateInfo*>(this) = rhs;
40312       return *this;
40313     }
40314 
setPNextVULKAN_HPP_NAMESPACE::MemoryAllocateInfo40315     MemoryAllocateInfo & setPNext( const void* pNext_ )
40316     {
40317       pNext = pNext_;
40318       return *this;
40319     }
40320 
setAllocationSizeVULKAN_HPP_NAMESPACE::MemoryAllocateInfo40321     MemoryAllocateInfo & setAllocationSize( vk::DeviceSize allocationSize_ )
40322     {
40323       allocationSize = allocationSize_;
40324       return *this;
40325     }
40326 
setMemoryTypeIndexVULKAN_HPP_NAMESPACE::MemoryAllocateInfo40327     MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ )
40328     {
40329       memoryTypeIndex = memoryTypeIndex_;
40330       return *this;
40331     }
40332 
operator VkMemoryAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo40333     operator VkMemoryAllocateInfo const&() const
40334     {
40335       return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
40336     }
40337 
operator VkMemoryAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryAllocateInfo40338     operator VkMemoryAllocateInfo &()
40339     {
40340       return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
40341     }
40342 
operator ==VULKAN_HPP_NAMESPACE::MemoryAllocateInfo40343     bool operator==( MemoryAllocateInfo const& rhs ) const
40344     {
40345       return ( sType == rhs.sType )
40346           && ( pNext == rhs.pNext )
40347           && ( allocationSize == rhs.allocationSize )
40348           && ( memoryTypeIndex == rhs.memoryTypeIndex );
40349     }
40350 
operator !=VULKAN_HPP_NAMESPACE::MemoryAllocateInfo40351     bool operator!=( MemoryAllocateInfo const& rhs ) const
40352     {
40353       return !operator==( rhs );
40354     }
40355 
40356   private:
40357     using layout::MemoryAllocateInfo::sType;
40358   };
40359   static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
40360   static_assert( std::is_standard_layout<MemoryAllocateInfo>::value, "struct wrapper is not a standard layout!" );
40361 
40362   namespace layout
40363   {
40364     struct MemoryBarrier
40365     {
40366     protected:
MemoryBarrierVULKAN_HPP_NAMESPACE::layout::MemoryBarrier40367       MemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
40368                      vk::AccessFlags dstAccessMask_ = vk::AccessFlags() )
40369         : srcAccessMask( srcAccessMask_ )
40370         , dstAccessMask( dstAccessMask_ )
40371       {}
40372 
MemoryBarrierVULKAN_HPP_NAMESPACE::layout::MemoryBarrier40373       MemoryBarrier( VkMemoryBarrier const & rhs )
40374       {
40375         *reinterpret_cast<VkMemoryBarrier*>(this) = rhs;
40376       }
40377 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryBarrier40378       MemoryBarrier& operator=( VkMemoryBarrier const & rhs )
40379       {
40380         *reinterpret_cast<VkMemoryBarrier*>(this) = rhs;
40381         return *this;
40382       }
40383 
40384     public:
40385       vk::StructureType sType = StructureType::eMemoryBarrier;
40386       const void* pNext = nullptr;
40387       vk::AccessFlags srcAccessMask;
40388       vk::AccessFlags dstAccessMask;
40389     };
40390     static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "layout struct and wrapper have different size!" );
40391   }
40392 
40393   struct MemoryBarrier : public layout::MemoryBarrier
40394   {
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier40395     MemoryBarrier( vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
40396                    vk::AccessFlags dstAccessMask_ = vk::AccessFlags() )
40397       : layout::MemoryBarrier( srcAccessMask_, dstAccessMask_ )
40398     {}
40399 
MemoryBarrierVULKAN_HPP_NAMESPACE::MemoryBarrier40400     MemoryBarrier( VkMemoryBarrier const & rhs )
40401       : layout::MemoryBarrier( rhs )
40402     {}
40403 
operator =VULKAN_HPP_NAMESPACE::MemoryBarrier40404     MemoryBarrier& operator=( VkMemoryBarrier const & rhs )
40405     {
40406       *reinterpret_cast<VkMemoryBarrier*>(this) = rhs;
40407       return *this;
40408     }
40409 
setPNextVULKAN_HPP_NAMESPACE::MemoryBarrier40410     MemoryBarrier & setPNext( const void* pNext_ )
40411     {
40412       pNext = pNext_;
40413       return *this;
40414     }
40415 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier40416     MemoryBarrier & setSrcAccessMask( vk::AccessFlags srcAccessMask_ )
40417     {
40418       srcAccessMask = srcAccessMask_;
40419       return *this;
40420     }
40421 
setDstAccessMaskVULKAN_HPP_NAMESPACE::MemoryBarrier40422     MemoryBarrier & setDstAccessMask( vk::AccessFlags dstAccessMask_ )
40423     {
40424       dstAccessMask = dstAccessMask_;
40425       return *this;
40426     }
40427 
operator VkMemoryBarrier const&VULKAN_HPP_NAMESPACE::MemoryBarrier40428     operator VkMemoryBarrier const&() const
40429     {
40430       return *reinterpret_cast<const VkMemoryBarrier*>( this );
40431     }
40432 
operator VkMemoryBarrier&VULKAN_HPP_NAMESPACE::MemoryBarrier40433     operator VkMemoryBarrier &()
40434     {
40435       return *reinterpret_cast<VkMemoryBarrier*>( this );
40436     }
40437 
operator ==VULKAN_HPP_NAMESPACE::MemoryBarrier40438     bool operator==( MemoryBarrier const& rhs ) const
40439     {
40440       return ( sType == rhs.sType )
40441           && ( pNext == rhs.pNext )
40442           && ( srcAccessMask == rhs.srcAccessMask )
40443           && ( dstAccessMask == rhs.dstAccessMask );
40444     }
40445 
operator !=VULKAN_HPP_NAMESPACE::MemoryBarrier40446     bool operator!=( MemoryBarrier const& rhs ) const
40447     {
40448       return !operator==( rhs );
40449     }
40450 
40451   private:
40452     using layout::MemoryBarrier::sType;
40453   };
40454   static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
40455   static_assert( std::is_standard_layout<MemoryBarrier>::value, "struct wrapper is not a standard layout!" );
40456 
40457   namespace layout
40458   {
40459     struct MemoryDedicatedAllocateInfo
40460     {
40461     protected:
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::layout::MemoryDedicatedAllocateInfo40462       MemoryDedicatedAllocateInfo( vk::Image image_ = vk::Image(),
40463                                    vk::Buffer buffer_ = vk::Buffer() )
40464         : image( image_ )
40465         , buffer( buffer_ )
40466       {}
40467 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::layout::MemoryDedicatedAllocateInfo40468       MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs )
40469       {
40470         *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this) = rhs;
40471       }
40472 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryDedicatedAllocateInfo40473       MemoryDedicatedAllocateInfo& operator=( VkMemoryDedicatedAllocateInfo const & rhs )
40474       {
40475         *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this) = rhs;
40476         return *this;
40477       }
40478 
40479     public:
40480       vk::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
40481       const void* pNext = nullptr;
40482       vk::Image image;
40483       vk::Buffer buffer;
40484     };
40485     static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "layout struct and wrapper have different size!" );
40486   }
40487 
40488   struct MemoryDedicatedAllocateInfo : public layout::MemoryDedicatedAllocateInfo
40489   {
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40490     MemoryDedicatedAllocateInfo( vk::Image image_ = vk::Image(),
40491                                  vk::Buffer buffer_ = vk::Buffer() )
40492       : layout::MemoryDedicatedAllocateInfo( image_, buffer_ )
40493     {}
40494 
MemoryDedicatedAllocateInfoVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40495     MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs )
40496       : layout::MemoryDedicatedAllocateInfo( rhs )
40497     {}
40498 
operator =VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40499     MemoryDedicatedAllocateInfo& operator=( VkMemoryDedicatedAllocateInfo const & rhs )
40500     {
40501       *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this) = rhs;
40502       return *this;
40503     }
40504 
setPNextVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40505     MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ )
40506     {
40507       pNext = pNext_;
40508       return *this;
40509     }
40510 
setImageVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40511     MemoryDedicatedAllocateInfo & setImage( vk::Image image_ )
40512     {
40513       image = image_;
40514       return *this;
40515     }
40516 
setBufferVULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40517     MemoryDedicatedAllocateInfo & setBuffer( vk::Buffer buffer_ )
40518     {
40519       buffer = buffer_;
40520       return *this;
40521     }
40522 
operator VkMemoryDedicatedAllocateInfo const&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40523     operator VkMemoryDedicatedAllocateInfo const&() const
40524     {
40525       return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
40526     }
40527 
operator VkMemoryDedicatedAllocateInfo&VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40528     operator VkMemoryDedicatedAllocateInfo &()
40529     {
40530       return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
40531     }
40532 
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40533     bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const
40534     {
40535       return ( sType == rhs.sType )
40536           && ( pNext == rhs.pNext )
40537           && ( image == rhs.image )
40538           && ( buffer == rhs.buffer );
40539     }
40540 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo40541     bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const
40542     {
40543       return !operator==( rhs );
40544     }
40545 
40546   private:
40547     using layout::MemoryDedicatedAllocateInfo::sType;
40548   };
40549   static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
40550   static_assert( std::is_standard_layout<MemoryDedicatedAllocateInfo>::value, "struct wrapper is not a standard layout!" );
40551 
40552   namespace layout
40553   {
40554     struct MemoryDedicatedRequirements
40555     {
40556     protected:
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::layout::MemoryDedicatedRequirements40557       MemoryDedicatedRequirements( vk::Bool32 prefersDedicatedAllocation_ = 0,
40558                                    vk::Bool32 requiresDedicatedAllocation_ = 0 )
40559         : prefersDedicatedAllocation( prefersDedicatedAllocation_ )
40560         , requiresDedicatedAllocation( requiresDedicatedAllocation_ )
40561       {}
40562 
MemoryDedicatedRequirementsVULKAN_HPP_NAMESPACE::layout::MemoryDedicatedRequirements40563       MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs )
40564       {
40565         *reinterpret_cast<VkMemoryDedicatedRequirements*>(this) = rhs;
40566       }
40567 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryDedicatedRequirements40568       MemoryDedicatedRequirements& operator=( VkMemoryDedicatedRequirements const & rhs )
40569       {
40570         *reinterpret_cast<VkMemoryDedicatedRequirements*>(this) = rhs;
40571         return *this;
40572       }
40573 
40574     public:
40575       vk::StructureType sType = StructureType::eMemoryDedicatedRequirements;
40576       void* pNext = nullptr;
40577       vk::Bool32 prefersDedicatedAllocation;
40578       vk::Bool32 requiresDedicatedAllocation;
40579     };
40580     static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "layout struct and wrapper have different size!" );
40581   }
40582 
40583   struct MemoryDedicatedRequirements : public layout::MemoryDedicatedRequirements
40584   {
operator VkMemoryDedicatedRequirements const&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements40585     operator VkMemoryDedicatedRequirements const&() const
40586     {
40587       return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
40588     }
40589 
operator VkMemoryDedicatedRequirements&VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements40590     operator VkMemoryDedicatedRequirements &()
40591     {
40592       return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
40593     }
40594 
operator ==VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements40595     bool operator==( MemoryDedicatedRequirements const& rhs ) const
40596     {
40597       return ( sType == rhs.sType )
40598           && ( pNext == rhs.pNext )
40599           && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
40600           && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
40601     }
40602 
operator !=VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements40603     bool operator!=( MemoryDedicatedRequirements const& rhs ) const
40604     {
40605       return !operator==( rhs );
40606     }
40607 
40608   private:
40609     using layout::MemoryDedicatedRequirements::sType;
40610   };
40611   static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
40612   static_assert( std::is_standard_layout<MemoryDedicatedRequirements>::value, "struct wrapper is not a standard layout!" );
40613 
40614   namespace layout
40615   {
40616     struct MemoryFdPropertiesKHR
40617     {
40618     protected:
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::layout::MemoryFdPropertiesKHR40619       MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = 0 )
40620         : memoryTypeBits( memoryTypeBits_ )
40621       {}
40622 
MemoryFdPropertiesKHRVULKAN_HPP_NAMESPACE::layout::MemoryFdPropertiesKHR40623       MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs )
40624       {
40625         *reinterpret_cast<VkMemoryFdPropertiesKHR*>(this) = rhs;
40626       }
40627 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryFdPropertiesKHR40628       MemoryFdPropertiesKHR& operator=( VkMemoryFdPropertiesKHR const & rhs )
40629       {
40630         *reinterpret_cast<VkMemoryFdPropertiesKHR*>(this) = rhs;
40631         return *this;
40632       }
40633 
40634     public:
40635       vk::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
40636       void* pNext = nullptr;
40637       uint32_t memoryTypeBits;
40638     };
40639     static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "layout struct and wrapper have different size!" );
40640   }
40641 
40642   struct MemoryFdPropertiesKHR : public layout::MemoryFdPropertiesKHR
40643   {
operator VkMemoryFdPropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR40644     operator VkMemoryFdPropertiesKHR const&() const
40645     {
40646       return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
40647     }
40648 
operator VkMemoryFdPropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR40649     operator VkMemoryFdPropertiesKHR &()
40650     {
40651       return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
40652     }
40653 
operator ==VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR40654     bool operator==( MemoryFdPropertiesKHR const& rhs ) const
40655     {
40656       return ( sType == rhs.sType )
40657           && ( pNext == rhs.pNext )
40658           && ( memoryTypeBits == rhs.memoryTypeBits );
40659     }
40660 
operator !=VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR40661     bool operator!=( MemoryFdPropertiesKHR const& rhs ) const
40662     {
40663       return !operator==( rhs );
40664     }
40665 
40666   private:
40667     using layout::MemoryFdPropertiesKHR::sType;
40668   };
40669   static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
40670   static_assert( std::is_standard_layout<MemoryFdPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
40671 
40672 #ifdef VK_USE_PLATFORM_ANDROID_KHR
40673 
40674   namespace layout
40675   {
40676     struct MemoryGetAndroidHardwareBufferInfoANDROID
40677     {
40678     protected:
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::layout::MemoryGetAndroidHardwareBufferInfoANDROID40679       MemoryGetAndroidHardwareBufferInfoANDROID( vk::DeviceMemory memory_ = vk::DeviceMemory() )
40680         : memory( memory_ )
40681       {}
40682 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::layout::MemoryGetAndroidHardwareBufferInfoANDROID40683       MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
40684       {
40685         *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this) = rhs;
40686       }
40687 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryGetAndroidHardwareBufferInfoANDROID40688       MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
40689       {
40690         *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this) = rhs;
40691         return *this;
40692       }
40693 
40694     public:
40695       vk::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
40696       const void* pNext = nullptr;
40697       vk::DeviceMemory memory;
40698     };
40699     static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "layout struct and wrapper have different size!" );
40700   }
40701 
40702   struct MemoryGetAndroidHardwareBufferInfoANDROID : public layout::MemoryGetAndroidHardwareBufferInfoANDROID
40703   {
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40704     MemoryGetAndroidHardwareBufferInfoANDROID( vk::DeviceMemory memory_ = vk::DeviceMemory() )
40705       : layout::MemoryGetAndroidHardwareBufferInfoANDROID( memory_ )
40706     {}
40707 
MemoryGetAndroidHardwareBufferInfoANDROIDVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40708     MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
40709       : layout::MemoryGetAndroidHardwareBufferInfoANDROID( rhs )
40710     {}
40711 
operator =VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40712     MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
40713     {
40714       *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this) = rhs;
40715       return *this;
40716     }
40717 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40718     MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ )
40719     {
40720       pNext = pNext_;
40721       return *this;
40722     }
40723 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40724     MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( vk::DeviceMemory memory_ )
40725     {
40726       memory = memory_;
40727       return *this;
40728     }
40729 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40730     operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const
40731     {
40732       return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
40733     }
40734 
operator VkMemoryGetAndroidHardwareBufferInfoANDROID&VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40735     operator VkMemoryGetAndroidHardwareBufferInfoANDROID &()
40736     {
40737       return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
40738     }
40739 
operator ==VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40740     bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
40741     {
40742       return ( sType == rhs.sType )
40743           && ( pNext == rhs.pNext )
40744           && ( memory == rhs.memory );
40745     }
40746 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID40747     bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
40748     {
40749       return !operator==( rhs );
40750     }
40751 
40752   private:
40753     using layout::MemoryGetAndroidHardwareBufferInfoANDROID::sType;
40754   };
40755   static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
40756   static_assert( std::is_standard_layout<MemoryGetAndroidHardwareBufferInfoANDROID>::value, "struct wrapper is not a standard layout!" );
40757 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
40758 
40759   namespace layout
40760   {
40761     struct MemoryGetFdInfoKHR
40762     {
40763     protected:
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::MemoryGetFdInfoKHR40764       MemoryGetFdInfoKHR( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40765                           vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
40766         : memory( memory_ )
40767         , handleType( handleType_ )
40768       {}
40769 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::MemoryGetFdInfoKHR40770       MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs )
40771       {
40772         *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this) = rhs;
40773       }
40774 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryGetFdInfoKHR40775       MemoryGetFdInfoKHR& operator=( VkMemoryGetFdInfoKHR const & rhs )
40776       {
40777         *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this) = rhs;
40778         return *this;
40779       }
40780 
40781     public:
40782       vk::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
40783       const void* pNext = nullptr;
40784       vk::DeviceMemory memory;
40785       vk::ExternalMemoryHandleTypeFlagBits handleType;
40786     };
40787     static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "layout struct and wrapper have different size!" );
40788   }
40789 
40790   struct MemoryGetFdInfoKHR : public layout::MemoryGetFdInfoKHR
40791   {
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40792     MemoryGetFdInfoKHR( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40793                         vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
40794       : layout::MemoryGetFdInfoKHR( memory_, handleType_ )
40795     {}
40796 
MemoryGetFdInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40797     MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs )
40798       : layout::MemoryGetFdInfoKHR( rhs )
40799     {}
40800 
operator =VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40801     MemoryGetFdInfoKHR& operator=( VkMemoryGetFdInfoKHR const & rhs )
40802     {
40803       *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this) = rhs;
40804       return *this;
40805     }
40806 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40807     MemoryGetFdInfoKHR & setPNext( const void* pNext_ )
40808     {
40809       pNext = pNext_;
40810       return *this;
40811     }
40812 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40813     MemoryGetFdInfoKHR & setMemory( vk::DeviceMemory memory_ )
40814     {
40815       memory = memory_;
40816       return *this;
40817     }
40818 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40819     MemoryGetFdInfoKHR & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
40820     {
40821       handleType = handleType_;
40822       return *this;
40823     }
40824 
operator VkMemoryGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40825     operator VkMemoryGetFdInfoKHR const&() const
40826     {
40827       return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
40828     }
40829 
operator VkMemoryGetFdInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40830     operator VkMemoryGetFdInfoKHR &()
40831     {
40832       return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
40833     }
40834 
operator ==VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40835     bool operator==( MemoryGetFdInfoKHR const& rhs ) const
40836     {
40837       return ( sType == rhs.sType )
40838           && ( pNext == rhs.pNext )
40839           && ( memory == rhs.memory )
40840           && ( handleType == rhs.handleType );
40841     }
40842 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR40843     bool operator!=( MemoryGetFdInfoKHR const& rhs ) const
40844     {
40845       return !operator==( rhs );
40846     }
40847 
40848   private:
40849     using layout::MemoryGetFdInfoKHR::sType;
40850   };
40851   static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
40852   static_assert( std::is_standard_layout<MemoryGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
40853 
40854 #ifdef VK_USE_PLATFORM_WIN32_KHR
40855 
40856   namespace layout
40857   {
40858     struct MemoryGetWin32HandleInfoKHR
40859     {
40860     protected:
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::MemoryGetWin32HandleInfoKHR40861       MemoryGetWin32HandleInfoKHR( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40862                                    vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
40863         : memory( memory_ )
40864         , handleType( handleType_ )
40865       {}
40866 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::MemoryGetWin32HandleInfoKHR40867       MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs )
40868       {
40869         *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this) = rhs;
40870       }
40871 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryGetWin32HandleInfoKHR40872       MemoryGetWin32HandleInfoKHR& operator=( VkMemoryGetWin32HandleInfoKHR const & rhs )
40873       {
40874         *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this) = rhs;
40875         return *this;
40876       }
40877 
40878     public:
40879       vk::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
40880       const void* pNext = nullptr;
40881       vk::DeviceMemory memory;
40882       vk::ExternalMemoryHandleTypeFlagBits handleType;
40883     };
40884     static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
40885   }
40886 
40887   struct MemoryGetWin32HandleInfoKHR : public layout::MemoryGetWin32HandleInfoKHR
40888   {
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40889     MemoryGetWin32HandleInfoKHR( vk::DeviceMemory memory_ = vk::DeviceMemory(),
40890                                  vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
40891       : layout::MemoryGetWin32HandleInfoKHR( memory_, handleType_ )
40892     {}
40893 
MemoryGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40894     MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs )
40895       : layout::MemoryGetWin32HandleInfoKHR( rhs )
40896     {}
40897 
operator =VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40898     MemoryGetWin32HandleInfoKHR& operator=( VkMemoryGetWin32HandleInfoKHR const & rhs )
40899     {
40900       *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this) = rhs;
40901       return *this;
40902     }
40903 
setPNextVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40904     MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
40905     {
40906       pNext = pNext_;
40907       return *this;
40908     }
40909 
setMemoryVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40910     MemoryGetWin32HandleInfoKHR & setMemory( vk::DeviceMemory memory_ )
40911     {
40912       memory = memory_;
40913       return *this;
40914     }
40915 
setHandleTypeVULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40916     MemoryGetWin32HandleInfoKHR & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
40917     {
40918       handleType = handleType_;
40919       return *this;
40920     }
40921 
operator VkMemoryGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40922     operator VkMemoryGetWin32HandleInfoKHR const&() const
40923     {
40924       return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
40925     }
40926 
operator VkMemoryGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40927     operator VkMemoryGetWin32HandleInfoKHR &()
40928     {
40929       return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
40930     }
40931 
operator ==VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40932     bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const
40933     {
40934       return ( sType == rhs.sType )
40935           && ( pNext == rhs.pNext )
40936           && ( memory == rhs.memory )
40937           && ( handleType == rhs.handleType );
40938     }
40939 
operator !=VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR40940     bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const
40941     {
40942       return !operator==( rhs );
40943     }
40944 
40945   private:
40946     using layout::MemoryGetWin32HandleInfoKHR::sType;
40947   };
40948   static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
40949   static_assert( std::is_standard_layout<MemoryGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
40950 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
40951 
40952   struct MemoryHeap
40953   {
operator VkMemoryHeap const&VULKAN_HPP_NAMESPACE::MemoryHeap40954     operator VkMemoryHeap const&() const
40955     {
40956       return *reinterpret_cast<const VkMemoryHeap*>( this );
40957     }
40958 
operator VkMemoryHeap&VULKAN_HPP_NAMESPACE::MemoryHeap40959     operator VkMemoryHeap &()
40960     {
40961       return *reinterpret_cast<VkMemoryHeap*>( this );
40962     }
40963 
operator ==VULKAN_HPP_NAMESPACE::MemoryHeap40964     bool operator==( MemoryHeap const& rhs ) const
40965     {
40966       return ( size == rhs.size )
40967           && ( flags == rhs.flags );
40968     }
40969 
operator !=VULKAN_HPP_NAMESPACE::MemoryHeap40970     bool operator!=( MemoryHeap const& rhs ) const
40971     {
40972       return !operator==( rhs );
40973     }
40974 
40975   public:
40976     vk::DeviceSize size;
40977     vk::MemoryHeapFlags flags;
40978   };
40979   static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
40980   static_assert( std::is_standard_layout<MemoryHeap>::value, "struct wrapper is not a standard layout!" );
40981 
40982   namespace layout
40983   {
40984     struct MemoryHostPointerPropertiesEXT
40985     {
40986     protected:
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::layout::MemoryHostPointerPropertiesEXT40987       MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = 0 )
40988         : memoryTypeBits( memoryTypeBits_ )
40989       {}
40990 
MemoryHostPointerPropertiesEXTVULKAN_HPP_NAMESPACE::layout::MemoryHostPointerPropertiesEXT40991       MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs )
40992       {
40993         *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>(this) = rhs;
40994       }
40995 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryHostPointerPropertiesEXT40996       MemoryHostPointerPropertiesEXT& operator=( VkMemoryHostPointerPropertiesEXT const & rhs )
40997       {
40998         *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>(this) = rhs;
40999         return *this;
41000       }
41001 
41002     public:
41003       vk::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
41004       void* pNext = nullptr;
41005       uint32_t memoryTypeBits;
41006     };
41007     static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "layout struct and wrapper have different size!" );
41008   }
41009 
41010   struct MemoryHostPointerPropertiesEXT : public layout::MemoryHostPointerPropertiesEXT
41011   {
operator VkMemoryHostPointerPropertiesEXT const&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT41012     operator VkMemoryHostPointerPropertiesEXT const&() const
41013     {
41014       return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
41015     }
41016 
operator VkMemoryHostPointerPropertiesEXT&VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT41017     operator VkMemoryHostPointerPropertiesEXT &()
41018     {
41019       return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
41020     }
41021 
operator ==VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT41022     bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const
41023     {
41024       return ( sType == rhs.sType )
41025           && ( pNext == rhs.pNext )
41026           && ( memoryTypeBits == rhs.memoryTypeBits );
41027     }
41028 
operator !=VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT41029     bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const
41030     {
41031       return !operator==( rhs );
41032     }
41033 
41034   private:
41035     using layout::MemoryHostPointerPropertiesEXT::sType;
41036   };
41037   static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
41038   static_assert( std::is_standard_layout<MemoryHostPointerPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
41039 
41040   namespace layout
41041   {
41042     struct MemoryPriorityAllocateInfoEXT
41043     {
41044     protected:
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::layout::MemoryPriorityAllocateInfoEXT41045       MemoryPriorityAllocateInfoEXT( float priority_ = 0 )
41046         : priority( priority_ )
41047       {}
41048 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::layout::MemoryPriorityAllocateInfoEXT41049       MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs )
41050       {
41051         *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(this) = rhs;
41052       }
41053 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryPriorityAllocateInfoEXT41054       MemoryPriorityAllocateInfoEXT& operator=( VkMemoryPriorityAllocateInfoEXT const & rhs )
41055       {
41056         *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(this) = rhs;
41057         return *this;
41058       }
41059 
41060     public:
41061       vk::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
41062       const void* pNext = nullptr;
41063       float priority;
41064     };
41065     static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "layout struct and wrapper have different size!" );
41066   }
41067 
41068   struct MemoryPriorityAllocateInfoEXT : public layout::MemoryPriorityAllocateInfoEXT
41069   {
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41070     MemoryPriorityAllocateInfoEXT( float priority_ = 0 )
41071       : layout::MemoryPriorityAllocateInfoEXT( priority_ )
41072     {}
41073 
MemoryPriorityAllocateInfoEXTVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41074     MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs )
41075       : layout::MemoryPriorityAllocateInfoEXT( rhs )
41076     {}
41077 
operator =VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41078     MemoryPriorityAllocateInfoEXT& operator=( VkMemoryPriorityAllocateInfoEXT const & rhs )
41079     {
41080       *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(this) = rhs;
41081       return *this;
41082     }
41083 
setPNextVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41084     MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ )
41085     {
41086       pNext = pNext_;
41087       return *this;
41088     }
41089 
setPriorityVULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41090     MemoryPriorityAllocateInfoEXT & setPriority( float priority_ )
41091     {
41092       priority = priority_;
41093       return *this;
41094     }
41095 
operator VkMemoryPriorityAllocateInfoEXT const&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41096     operator VkMemoryPriorityAllocateInfoEXT const&() const
41097     {
41098       return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
41099     }
41100 
operator VkMemoryPriorityAllocateInfoEXT&VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41101     operator VkMemoryPriorityAllocateInfoEXT &()
41102     {
41103       return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
41104     }
41105 
operator ==VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41106     bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const
41107     {
41108       return ( sType == rhs.sType )
41109           && ( pNext == rhs.pNext )
41110           && ( priority == rhs.priority );
41111     }
41112 
operator !=VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT41113     bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const
41114     {
41115       return !operator==( rhs );
41116     }
41117 
41118   private:
41119     using layout::MemoryPriorityAllocateInfoEXT::sType;
41120   };
41121   static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
41122   static_assert( std::is_standard_layout<MemoryPriorityAllocateInfoEXT>::value, "struct wrapper is not a standard layout!" );
41123 
41124   struct MemoryRequirements
41125   {
operator VkMemoryRequirements const&VULKAN_HPP_NAMESPACE::MemoryRequirements41126     operator VkMemoryRequirements const&() const
41127     {
41128       return *reinterpret_cast<const VkMemoryRequirements*>( this );
41129     }
41130 
operator VkMemoryRequirements&VULKAN_HPP_NAMESPACE::MemoryRequirements41131     operator VkMemoryRequirements &()
41132     {
41133       return *reinterpret_cast<VkMemoryRequirements*>( this );
41134     }
41135 
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements41136     bool operator==( MemoryRequirements const& rhs ) const
41137     {
41138       return ( size == rhs.size )
41139           && ( alignment == rhs.alignment )
41140           && ( memoryTypeBits == rhs.memoryTypeBits );
41141     }
41142 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements41143     bool operator!=( MemoryRequirements const& rhs ) const
41144     {
41145       return !operator==( rhs );
41146     }
41147 
41148   public:
41149     vk::DeviceSize size;
41150     vk::DeviceSize alignment;
41151     uint32_t memoryTypeBits;
41152   };
41153   static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
41154   static_assert( std::is_standard_layout<MemoryRequirements>::value, "struct wrapper is not a standard layout!" );
41155 
41156   namespace layout
41157   {
41158     struct MemoryRequirements2
41159     {
41160     protected:
MemoryRequirements2VULKAN_HPP_NAMESPACE::layout::MemoryRequirements241161       MemoryRequirements2( vk::MemoryRequirements memoryRequirements_ = vk::MemoryRequirements() )
41162         : memoryRequirements( memoryRequirements_ )
41163       {}
41164 
MemoryRequirements2VULKAN_HPP_NAMESPACE::layout::MemoryRequirements241165       MemoryRequirements2( VkMemoryRequirements2 const & rhs )
41166       {
41167         *reinterpret_cast<VkMemoryRequirements2*>(this) = rhs;
41168       }
41169 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryRequirements241170       MemoryRequirements2& operator=( VkMemoryRequirements2 const & rhs )
41171       {
41172         *reinterpret_cast<VkMemoryRequirements2*>(this) = rhs;
41173         return *this;
41174       }
41175 
41176     public:
41177       vk::StructureType sType = StructureType::eMemoryRequirements2;
41178       void* pNext = nullptr;
41179       vk::MemoryRequirements memoryRequirements;
41180     };
41181     static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "layout struct and wrapper have different size!" );
41182   }
41183 
41184   struct MemoryRequirements2 : public layout::MemoryRequirements2
41185   {
operator VkMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::MemoryRequirements241186     operator VkMemoryRequirements2 const&() const
41187     {
41188       return *reinterpret_cast<const VkMemoryRequirements2*>( this );
41189     }
41190 
operator VkMemoryRequirements2&VULKAN_HPP_NAMESPACE::MemoryRequirements241191     operator VkMemoryRequirements2 &()
41192     {
41193       return *reinterpret_cast<VkMemoryRequirements2*>( this );
41194     }
41195 
operator ==VULKAN_HPP_NAMESPACE::MemoryRequirements241196     bool operator==( MemoryRequirements2 const& rhs ) const
41197     {
41198       return ( sType == rhs.sType )
41199           && ( pNext == rhs.pNext )
41200           && ( memoryRequirements == rhs.memoryRequirements );
41201     }
41202 
operator !=VULKAN_HPP_NAMESPACE::MemoryRequirements241203     bool operator!=( MemoryRequirements2 const& rhs ) const
41204     {
41205       return !operator==( rhs );
41206     }
41207 
41208   private:
41209     using layout::MemoryRequirements2::sType;
41210   };
41211   static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
41212   static_assert( std::is_standard_layout<MemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
41213 
41214   struct MemoryType
41215   {
operator VkMemoryType const&VULKAN_HPP_NAMESPACE::MemoryType41216     operator VkMemoryType const&() const
41217     {
41218       return *reinterpret_cast<const VkMemoryType*>( this );
41219     }
41220 
operator VkMemoryType&VULKAN_HPP_NAMESPACE::MemoryType41221     operator VkMemoryType &()
41222     {
41223       return *reinterpret_cast<VkMemoryType*>( this );
41224     }
41225 
operator ==VULKAN_HPP_NAMESPACE::MemoryType41226     bool operator==( MemoryType const& rhs ) const
41227     {
41228       return ( propertyFlags == rhs.propertyFlags )
41229           && ( heapIndex == rhs.heapIndex );
41230     }
41231 
operator !=VULKAN_HPP_NAMESPACE::MemoryType41232     bool operator!=( MemoryType const& rhs ) const
41233     {
41234       return !operator==( rhs );
41235     }
41236 
41237   public:
41238     vk::MemoryPropertyFlags propertyFlags;
41239     uint32_t heapIndex;
41240   };
41241   static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
41242   static_assert( std::is_standard_layout<MemoryType>::value, "struct wrapper is not a standard layout!" );
41243 
41244 #ifdef VK_USE_PLATFORM_WIN32_KHR
41245 
41246   namespace layout
41247   {
41248     struct MemoryWin32HandlePropertiesKHR
41249     {
41250     protected:
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::layout::MemoryWin32HandlePropertiesKHR41251       MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = 0 )
41252         : memoryTypeBits( memoryTypeBits_ )
41253       {}
41254 
MemoryWin32HandlePropertiesKHRVULKAN_HPP_NAMESPACE::layout::MemoryWin32HandlePropertiesKHR41255       MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs )
41256       {
41257         *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>(this) = rhs;
41258       }
41259 
operator =VULKAN_HPP_NAMESPACE::layout::MemoryWin32HandlePropertiesKHR41260       MemoryWin32HandlePropertiesKHR& operator=( VkMemoryWin32HandlePropertiesKHR const & rhs )
41261       {
41262         *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>(this) = rhs;
41263         return *this;
41264       }
41265 
41266     public:
41267       vk::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
41268       void* pNext = nullptr;
41269       uint32_t memoryTypeBits;
41270     };
41271     static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "layout struct and wrapper have different size!" );
41272   }
41273 
41274   struct MemoryWin32HandlePropertiesKHR : public layout::MemoryWin32HandlePropertiesKHR
41275   {
operator VkMemoryWin32HandlePropertiesKHR const&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR41276     operator VkMemoryWin32HandlePropertiesKHR const&() const
41277     {
41278       return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
41279     }
41280 
operator VkMemoryWin32HandlePropertiesKHR&VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR41281     operator VkMemoryWin32HandlePropertiesKHR &()
41282     {
41283       return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
41284     }
41285 
operator ==VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR41286     bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const
41287     {
41288       return ( sType == rhs.sType )
41289           && ( pNext == rhs.pNext )
41290           && ( memoryTypeBits == rhs.memoryTypeBits );
41291     }
41292 
operator !=VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR41293     bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const
41294     {
41295       return !operator==( rhs );
41296     }
41297 
41298   private:
41299     using layout::MemoryWin32HandlePropertiesKHR::sType;
41300   };
41301   static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
41302   static_assert( std::is_standard_layout<MemoryWin32HandlePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
41303 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
41304 
41305 #ifdef VK_USE_PLATFORM_METAL_EXT
41306 
41307   namespace layout
41308   {
41309     struct MetalSurfaceCreateInfoEXT
41310     {
41311     protected:
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::MetalSurfaceCreateInfoEXT41312       MetalSurfaceCreateInfoEXT( vk::MetalSurfaceCreateFlagsEXT flags_ = vk::MetalSurfaceCreateFlagsEXT(),
41313                                  const CAMetalLayer* pLayer_ = nullptr )
41314         : flags( flags_ )
41315         , pLayer( pLayer_ )
41316       {}
41317 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::MetalSurfaceCreateInfoEXT41318       MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs )
41319       {
41320         *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>(this) = rhs;
41321       }
41322 
operator =VULKAN_HPP_NAMESPACE::layout::MetalSurfaceCreateInfoEXT41323       MetalSurfaceCreateInfoEXT& operator=( VkMetalSurfaceCreateInfoEXT const & rhs )
41324       {
41325         *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>(this) = rhs;
41326         return *this;
41327       }
41328 
41329     public:
41330       vk::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
41331       const void* pNext = nullptr;
41332       vk::MetalSurfaceCreateFlagsEXT flags;
41333       const CAMetalLayer* pLayer;
41334     };
41335     static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "layout struct and wrapper have different size!" );
41336   }
41337 
41338   struct MetalSurfaceCreateInfoEXT : public layout::MetalSurfaceCreateInfoEXT
41339   {
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41340     MetalSurfaceCreateInfoEXT( vk::MetalSurfaceCreateFlagsEXT flags_ = vk::MetalSurfaceCreateFlagsEXT(),
41341                                const CAMetalLayer* pLayer_ = nullptr )
41342       : layout::MetalSurfaceCreateInfoEXT( flags_, pLayer_ )
41343     {}
41344 
MetalSurfaceCreateInfoEXTVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41345     MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs )
41346       : layout::MetalSurfaceCreateInfoEXT( rhs )
41347     {}
41348 
operator =VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41349     MetalSurfaceCreateInfoEXT& operator=( VkMetalSurfaceCreateInfoEXT const & rhs )
41350     {
41351       *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>(this) = rhs;
41352       return *this;
41353     }
41354 
setPNextVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41355     MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ )
41356     {
41357       pNext = pNext_;
41358       return *this;
41359     }
41360 
setFlagsVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41361     MetalSurfaceCreateInfoEXT & setFlags( vk::MetalSurfaceCreateFlagsEXT flags_ )
41362     {
41363       flags = flags_;
41364       return *this;
41365     }
41366 
setPLayerVULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41367     MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ )
41368     {
41369       pLayer = pLayer_;
41370       return *this;
41371     }
41372 
operator VkMetalSurfaceCreateInfoEXT const&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41373     operator VkMetalSurfaceCreateInfoEXT const&() const
41374     {
41375       return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
41376     }
41377 
operator VkMetalSurfaceCreateInfoEXT&VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41378     operator VkMetalSurfaceCreateInfoEXT &()
41379     {
41380       return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
41381     }
41382 
operator ==VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41383     bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const
41384     {
41385       return ( sType == rhs.sType )
41386           && ( pNext == rhs.pNext )
41387           && ( flags == rhs.flags )
41388           && ( pLayer == rhs.pLayer );
41389     }
41390 
operator !=VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT41391     bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const
41392     {
41393       return !operator==( rhs );
41394     }
41395 
41396   private:
41397     using layout::MetalSurfaceCreateInfoEXT::sType;
41398   };
41399   static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
41400   static_assert( std::is_standard_layout<MetalSurfaceCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
41401 #endif /*VK_USE_PLATFORM_METAL_EXT*/
41402 
41403   namespace layout
41404   {
41405     struct MultisamplePropertiesEXT
41406     {
41407     protected:
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::layout::MultisamplePropertiesEXT41408       MultisamplePropertiesEXT( vk::Extent2D maxSampleLocationGridSize_ = vk::Extent2D() )
41409         : maxSampleLocationGridSize( maxSampleLocationGridSize_ )
41410       {}
41411 
MultisamplePropertiesEXTVULKAN_HPP_NAMESPACE::layout::MultisamplePropertiesEXT41412       MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs )
41413       {
41414         *reinterpret_cast<VkMultisamplePropertiesEXT*>(this) = rhs;
41415       }
41416 
operator =VULKAN_HPP_NAMESPACE::layout::MultisamplePropertiesEXT41417       MultisamplePropertiesEXT& operator=( VkMultisamplePropertiesEXT const & rhs )
41418       {
41419         *reinterpret_cast<VkMultisamplePropertiesEXT*>(this) = rhs;
41420         return *this;
41421       }
41422 
41423     public:
41424       vk::StructureType sType = StructureType::eMultisamplePropertiesEXT;
41425       void* pNext = nullptr;
41426       vk::Extent2D maxSampleLocationGridSize;
41427     };
41428     static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "layout struct and wrapper have different size!" );
41429   }
41430 
41431   struct MultisamplePropertiesEXT : public layout::MultisamplePropertiesEXT
41432   {
operator VkMultisamplePropertiesEXT const&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT41433     operator VkMultisamplePropertiesEXT const&() const
41434     {
41435       return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
41436     }
41437 
operator VkMultisamplePropertiesEXT&VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT41438     operator VkMultisamplePropertiesEXT &()
41439     {
41440       return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
41441     }
41442 
operator ==VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT41443     bool operator==( MultisamplePropertiesEXT const& rhs ) const
41444     {
41445       return ( sType == rhs.sType )
41446           && ( pNext == rhs.pNext )
41447           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
41448     }
41449 
operator !=VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT41450     bool operator!=( MultisamplePropertiesEXT const& rhs ) const
41451     {
41452       return !operator==( rhs );
41453     }
41454 
41455   private:
41456     using layout::MultisamplePropertiesEXT::sType;
41457   };
41458   static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
41459   static_assert( std::is_standard_layout<MultisamplePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
41460 
41461   namespace layout
41462   {
41463     struct ObjectTableCreateInfoNVX
41464     {
41465     protected:
ObjectTableCreateInfoNVXVULKAN_HPP_NAMESPACE::layout::ObjectTableCreateInfoNVX41466       ObjectTableCreateInfoNVX( uint32_t objectCount_ = 0,
41467                                 const vk::ObjectEntryTypeNVX* pObjectEntryTypes_ = nullptr,
41468                                 const uint32_t* pObjectEntryCounts_ = nullptr,
41469                                 const vk::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ = nullptr,
41470                                 uint32_t maxUniformBuffersPerDescriptor_ = 0,
41471                                 uint32_t maxStorageBuffersPerDescriptor_ = 0,
41472                                 uint32_t maxStorageImagesPerDescriptor_ = 0,
41473                                 uint32_t maxSampledImagesPerDescriptor_ = 0,
41474                                 uint32_t maxPipelineLayouts_ = 0 )
41475         : objectCount( objectCount_ )
41476         , pObjectEntryTypes( pObjectEntryTypes_ )
41477         , pObjectEntryCounts( pObjectEntryCounts_ )
41478         , pObjectEntryUsageFlags( pObjectEntryUsageFlags_ )
41479         , maxUniformBuffersPerDescriptor( maxUniformBuffersPerDescriptor_ )
41480         , maxStorageBuffersPerDescriptor( maxStorageBuffersPerDescriptor_ )
41481         , maxStorageImagesPerDescriptor( maxStorageImagesPerDescriptor_ )
41482         , maxSampledImagesPerDescriptor( maxSampledImagesPerDescriptor_ )
41483         , maxPipelineLayouts( maxPipelineLayouts_ )
41484       {}
41485 
ObjectTableCreateInfoNVXVULKAN_HPP_NAMESPACE::layout::ObjectTableCreateInfoNVX41486       ObjectTableCreateInfoNVX( VkObjectTableCreateInfoNVX const & rhs )
41487       {
41488         *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this) = rhs;
41489       }
41490 
operator =VULKAN_HPP_NAMESPACE::layout::ObjectTableCreateInfoNVX41491       ObjectTableCreateInfoNVX& operator=( VkObjectTableCreateInfoNVX const & rhs )
41492       {
41493         *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this) = rhs;
41494         return *this;
41495       }
41496 
41497     public:
41498       vk::StructureType sType = StructureType::eObjectTableCreateInfoNVX;
41499       const void* pNext = nullptr;
41500       uint32_t objectCount;
41501       const vk::ObjectEntryTypeNVX* pObjectEntryTypes;
41502       const uint32_t* pObjectEntryCounts;
41503       const vk::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
41504       uint32_t maxUniformBuffersPerDescriptor;
41505       uint32_t maxStorageBuffersPerDescriptor;
41506       uint32_t maxStorageImagesPerDescriptor;
41507       uint32_t maxSampledImagesPerDescriptor;
41508       uint32_t maxPipelineLayouts;
41509     };
41510     static_assert( sizeof( ObjectTableCreateInfoNVX ) == sizeof( VkObjectTableCreateInfoNVX ), "layout struct and wrapper have different size!" );
41511   }
41512 
41513   struct ObjectTableCreateInfoNVX : public layout::ObjectTableCreateInfoNVX
41514   {
ObjectTableCreateInfoNVXVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41515     ObjectTableCreateInfoNVX( uint32_t objectCount_ = 0,
41516                               const vk::ObjectEntryTypeNVX* pObjectEntryTypes_ = nullptr,
41517                               const uint32_t* pObjectEntryCounts_ = nullptr,
41518                               const vk::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ = nullptr,
41519                               uint32_t maxUniformBuffersPerDescriptor_ = 0,
41520                               uint32_t maxStorageBuffersPerDescriptor_ = 0,
41521                               uint32_t maxStorageImagesPerDescriptor_ = 0,
41522                               uint32_t maxSampledImagesPerDescriptor_ = 0,
41523                               uint32_t maxPipelineLayouts_ = 0 )
41524       : layout::ObjectTableCreateInfoNVX( objectCount_, pObjectEntryTypes_, pObjectEntryCounts_, pObjectEntryUsageFlags_, maxUniformBuffersPerDescriptor_, maxStorageBuffersPerDescriptor_, maxStorageImagesPerDescriptor_, maxSampledImagesPerDescriptor_, maxPipelineLayouts_ )
41525     {}
41526 
ObjectTableCreateInfoNVXVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41527     ObjectTableCreateInfoNVX( VkObjectTableCreateInfoNVX const & rhs )
41528       : layout::ObjectTableCreateInfoNVX( rhs )
41529     {}
41530 
operator =VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41531     ObjectTableCreateInfoNVX& operator=( VkObjectTableCreateInfoNVX const & rhs )
41532     {
41533       *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this) = rhs;
41534       return *this;
41535     }
41536 
setPNextVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41537     ObjectTableCreateInfoNVX & setPNext( const void* pNext_ )
41538     {
41539       pNext = pNext_;
41540       return *this;
41541     }
41542 
setObjectCountVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41543     ObjectTableCreateInfoNVX & setObjectCount( uint32_t objectCount_ )
41544     {
41545       objectCount = objectCount_;
41546       return *this;
41547     }
41548 
setPObjectEntryTypesVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41549     ObjectTableCreateInfoNVX & setPObjectEntryTypes( const vk::ObjectEntryTypeNVX* pObjectEntryTypes_ )
41550     {
41551       pObjectEntryTypes = pObjectEntryTypes_;
41552       return *this;
41553     }
41554 
setPObjectEntryCountsVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41555     ObjectTableCreateInfoNVX & setPObjectEntryCounts( const uint32_t* pObjectEntryCounts_ )
41556     {
41557       pObjectEntryCounts = pObjectEntryCounts_;
41558       return *this;
41559     }
41560 
setPObjectEntryUsageFlagsVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41561     ObjectTableCreateInfoNVX & setPObjectEntryUsageFlags( const vk::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ )
41562     {
41563       pObjectEntryUsageFlags = pObjectEntryUsageFlags_;
41564       return *this;
41565     }
41566 
setMaxUniformBuffersPerDescriptorVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41567     ObjectTableCreateInfoNVX & setMaxUniformBuffersPerDescriptor( uint32_t maxUniformBuffersPerDescriptor_ )
41568     {
41569       maxUniformBuffersPerDescriptor = maxUniformBuffersPerDescriptor_;
41570       return *this;
41571     }
41572 
setMaxStorageBuffersPerDescriptorVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41573     ObjectTableCreateInfoNVX & setMaxStorageBuffersPerDescriptor( uint32_t maxStorageBuffersPerDescriptor_ )
41574     {
41575       maxStorageBuffersPerDescriptor = maxStorageBuffersPerDescriptor_;
41576       return *this;
41577     }
41578 
setMaxStorageImagesPerDescriptorVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41579     ObjectTableCreateInfoNVX & setMaxStorageImagesPerDescriptor( uint32_t maxStorageImagesPerDescriptor_ )
41580     {
41581       maxStorageImagesPerDescriptor = maxStorageImagesPerDescriptor_;
41582       return *this;
41583     }
41584 
setMaxSampledImagesPerDescriptorVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41585     ObjectTableCreateInfoNVX & setMaxSampledImagesPerDescriptor( uint32_t maxSampledImagesPerDescriptor_ )
41586     {
41587       maxSampledImagesPerDescriptor = maxSampledImagesPerDescriptor_;
41588       return *this;
41589     }
41590 
setMaxPipelineLayoutsVULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41591     ObjectTableCreateInfoNVX & setMaxPipelineLayouts( uint32_t maxPipelineLayouts_ )
41592     {
41593       maxPipelineLayouts = maxPipelineLayouts_;
41594       return *this;
41595     }
41596 
operator VkObjectTableCreateInfoNVX const&VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41597     operator VkObjectTableCreateInfoNVX const&() const
41598     {
41599       return *reinterpret_cast<const VkObjectTableCreateInfoNVX*>( this );
41600     }
41601 
operator VkObjectTableCreateInfoNVX&VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41602     operator VkObjectTableCreateInfoNVX &()
41603     {
41604       return *reinterpret_cast<VkObjectTableCreateInfoNVX*>( this );
41605     }
41606 
operator ==VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41607     bool operator==( ObjectTableCreateInfoNVX const& rhs ) const
41608     {
41609       return ( sType == rhs.sType )
41610           && ( pNext == rhs.pNext )
41611           && ( objectCount == rhs.objectCount )
41612           && ( pObjectEntryTypes == rhs.pObjectEntryTypes )
41613           && ( pObjectEntryCounts == rhs.pObjectEntryCounts )
41614           && ( pObjectEntryUsageFlags == rhs.pObjectEntryUsageFlags )
41615           && ( maxUniformBuffersPerDescriptor == rhs.maxUniformBuffersPerDescriptor )
41616           && ( maxStorageBuffersPerDescriptor == rhs.maxStorageBuffersPerDescriptor )
41617           && ( maxStorageImagesPerDescriptor == rhs.maxStorageImagesPerDescriptor )
41618           && ( maxSampledImagesPerDescriptor == rhs.maxSampledImagesPerDescriptor )
41619           && ( maxPipelineLayouts == rhs.maxPipelineLayouts );
41620     }
41621 
operator !=VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX41622     bool operator!=( ObjectTableCreateInfoNVX const& rhs ) const
41623     {
41624       return !operator==( rhs );
41625     }
41626 
41627   private:
41628     using layout::ObjectTableCreateInfoNVX::sType;
41629   };
41630   static_assert( sizeof( ObjectTableCreateInfoNVX ) == sizeof( VkObjectTableCreateInfoNVX ), "struct and wrapper have different size!" );
41631   static_assert( std::is_standard_layout<ObjectTableCreateInfoNVX>::value, "struct wrapper is not a standard layout!" );
41632 
41633   struct ObjectTableEntryNVX
41634   {
ObjectTableEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41635     ObjectTableEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
41636                          vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX() )
41637         : type( type_ )
41638         , flags( flags_ )
41639     {}
41640 
ObjectTableEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41641     ObjectTableEntryNVX( VkObjectTableEntryNVX const & rhs )
41642     {
41643       *reinterpret_cast<VkObjectTableEntryNVX*>(this) = rhs;
41644     }
41645 
operator =VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41646     ObjectTableEntryNVX& operator=( VkObjectTableEntryNVX const & rhs )
41647     {
41648       *reinterpret_cast<VkObjectTableEntryNVX*>(this) = rhs;
41649       return *this;
41650     }
41651 
setTypeVULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41652     ObjectTableEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
41653     {
41654       type = type_;
41655       return *this;
41656     }
41657 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41658     ObjectTableEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
41659     {
41660       flags = flags_;
41661       return *this;
41662     }
41663 
operator VkObjectTableEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41664     operator VkObjectTableEntryNVX const&() const
41665     {
41666       return *reinterpret_cast<const VkObjectTableEntryNVX*>( this );
41667     }
41668 
operator VkObjectTableEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41669     operator VkObjectTableEntryNVX &()
41670     {
41671       return *reinterpret_cast<VkObjectTableEntryNVX*>( this );
41672     }
41673 
operator ==VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41674     bool operator==( ObjectTableEntryNVX const& rhs ) const
41675     {
41676       return ( type == rhs.type )
41677           && ( flags == rhs.flags );
41678     }
41679 
operator !=VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX41680     bool operator!=( ObjectTableEntryNVX const& rhs ) const
41681     {
41682       return !operator==( rhs );
41683     }
41684 
41685   public:
41686     vk::ObjectEntryTypeNVX type;
41687     vk::ObjectEntryUsageFlagsNVX flags;
41688   };
41689   static_assert( sizeof( ObjectTableEntryNVX ) == sizeof( VkObjectTableEntryNVX ), "struct and wrapper have different size!" );
41690   static_assert( std::is_standard_layout<ObjectTableEntryNVX>::value, "struct wrapper is not a standard layout!" );
41691 
41692   struct ObjectTableDescriptorSetEntryNVX
41693   {
ObjectTableDescriptorSetEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41694     ObjectTableDescriptorSetEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
41695                                       vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX(),
41696                                       vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
41697                                       vk::DescriptorSet descriptorSet_ = vk::DescriptorSet() )
41698         : type( type_ )
41699         , flags( flags_ )
41700         , pipelineLayout( pipelineLayout_ )
41701         , descriptorSet( descriptorSet_ )
41702     {}
41703 
ObjectTableDescriptorSetEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41704     explicit ObjectTableDescriptorSetEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
41705                                                vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
41706                                                vk::DescriptorSet descriptorSet_ = vk::DescriptorSet() )
41707       : type( objectTableEntryNVX.type )
41708       , flags( objectTableEntryNVX.flags )
41709       , pipelineLayout( pipelineLayout_ )
41710       , descriptorSet( descriptorSet_ )
41711 
41712     {}
41713 
ObjectTableDescriptorSetEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41714     ObjectTableDescriptorSetEntryNVX( VkObjectTableDescriptorSetEntryNVX const & rhs )
41715     {
41716       *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>(this) = rhs;
41717     }
41718 
operator =VULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41719     ObjectTableDescriptorSetEntryNVX& operator=( VkObjectTableDescriptorSetEntryNVX const & rhs )
41720     {
41721       *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>(this) = rhs;
41722       return *this;
41723     }
41724 
setTypeVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41725     ObjectTableDescriptorSetEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
41726     {
41727       type = type_;
41728       return *this;
41729     }
41730 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41731     ObjectTableDescriptorSetEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
41732     {
41733       flags = flags_;
41734       return *this;
41735     }
41736 
setPipelineLayoutVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41737     ObjectTableDescriptorSetEntryNVX & setPipelineLayout( vk::PipelineLayout pipelineLayout_ )
41738     {
41739       pipelineLayout = pipelineLayout_;
41740       return *this;
41741     }
41742 
setDescriptorSetVULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41743     ObjectTableDescriptorSetEntryNVX & setDescriptorSet( vk::DescriptorSet descriptorSet_ )
41744     {
41745       descriptorSet = descriptorSet_;
41746       return *this;
41747     }
41748 
operator VkObjectTableDescriptorSetEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41749     operator VkObjectTableDescriptorSetEntryNVX const&() const
41750     {
41751       return *reinterpret_cast<const VkObjectTableDescriptorSetEntryNVX*>( this );
41752     }
41753 
operator VkObjectTableDescriptorSetEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41754     operator VkObjectTableDescriptorSetEntryNVX &()
41755     {
41756       return *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>( this );
41757     }
41758 
operator ==VULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41759     bool operator==( ObjectTableDescriptorSetEntryNVX const& rhs ) const
41760     {
41761       return ( type == rhs.type )
41762           && ( flags == rhs.flags )
41763           && ( pipelineLayout == rhs.pipelineLayout )
41764           && ( descriptorSet == rhs.descriptorSet );
41765     }
41766 
operator !=VULKAN_HPP_NAMESPACE::ObjectTableDescriptorSetEntryNVX41767     bool operator!=( ObjectTableDescriptorSetEntryNVX const& rhs ) const
41768     {
41769       return !operator==( rhs );
41770     }
41771 
41772   public:
41773     vk::ObjectEntryTypeNVX type;
41774     vk::ObjectEntryUsageFlagsNVX flags;
41775     vk::PipelineLayout pipelineLayout;
41776     vk::DescriptorSet descriptorSet;
41777   };
41778   static_assert( sizeof( ObjectTableDescriptorSetEntryNVX ) == sizeof( VkObjectTableDescriptorSetEntryNVX ), "struct and wrapper have different size!" );
41779   static_assert( std::is_standard_layout<ObjectTableDescriptorSetEntryNVX>::value, "struct wrapper is not a standard layout!" );
41780 
41781   struct ObjectTableIndexBufferEntryNVX
41782   {
ObjectTableIndexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41783     ObjectTableIndexBufferEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
41784                                     vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX(),
41785                                     vk::Buffer buffer_ = vk::Buffer(),
41786                                     vk::IndexType indexType_ = vk::IndexType::eUint16 )
41787         : type( type_ )
41788         , flags( flags_ )
41789         , buffer( buffer_ )
41790         , indexType( indexType_ )
41791     {}
41792 
ObjectTableIndexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41793     explicit ObjectTableIndexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
41794                                              vk::Buffer buffer_ = vk::Buffer(),
41795                                              vk::IndexType indexType_ = vk::IndexType::eUint16 )
41796       : type( objectTableEntryNVX.type )
41797       , flags( objectTableEntryNVX.flags )
41798       , buffer( buffer_ )
41799       , indexType( indexType_ )
41800 
41801     {}
41802 
ObjectTableIndexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41803     ObjectTableIndexBufferEntryNVX( VkObjectTableIndexBufferEntryNVX const & rhs )
41804     {
41805       *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>(this) = rhs;
41806     }
41807 
operator =VULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41808     ObjectTableIndexBufferEntryNVX& operator=( VkObjectTableIndexBufferEntryNVX const & rhs )
41809     {
41810       *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>(this) = rhs;
41811       return *this;
41812     }
41813 
setTypeVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41814     ObjectTableIndexBufferEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
41815     {
41816       type = type_;
41817       return *this;
41818     }
41819 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41820     ObjectTableIndexBufferEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
41821     {
41822       flags = flags_;
41823       return *this;
41824     }
41825 
setBufferVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41826     ObjectTableIndexBufferEntryNVX & setBuffer( vk::Buffer buffer_ )
41827     {
41828       buffer = buffer_;
41829       return *this;
41830     }
41831 
setIndexTypeVULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41832     ObjectTableIndexBufferEntryNVX & setIndexType( vk::IndexType indexType_ )
41833     {
41834       indexType = indexType_;
41835       return *this;
41836     }
41837 
operator VkObjectTableIndexBufferEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41838     operator VkObjectTableIndexBufferEntryNVX const&() const
41839     {
41840       return *reinterpret_cast<const VkObjectTableIndexBufferEntryNVX*>( this );
41841     }
41842 
operator VkObjectTableIndexBufferEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41843     operator VkObjectTableIndexBufferEntryNVX &()
41844     {
41845       return *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>( this );
41846     }
41847 
operator ==VULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41848     bool operator==( ObjectTableIndexBufferEntryNVX const& rhs ) const
41849     {
41850       return ( type == rhs.type )
41851           && ( flags == rhs.flags )
41852           && ( buffer == rhs.buffer )
41853           && ( indexType == rhs.indexType );
41854     }
41855 
operator !=VULKAN_HPP_NAMESPACE::ObjectTableIndexBufferEntryNVX41856     bool operator!=( ObjectTableIndexBufferEntryNVX const& rhs ) const
41857     {
41858       return !operator==( rhs );
41859     }
41860 
41861   public:
41862     vk::ObjectEntryTypeNVX type;
41863     vk::ObjectEntryUsageFlagsNVX flags;
41864     vk::Buffer buffer;
41865     vk::IndexType indexType;
41866   };
41867   static_assert( sizeof( ObjectTableIndexBufferEntryNVX ) == sizeof( VkObjectTableIndexBufferEntryNVX ), "struct and wrapper have different size!" );
41868   static_assert( std::is_standard_layout<ObjectTableIndexBufferEntryNVX>::value, "struct wrapper is not a standard layout!" );
41869 
41870   struct ObjectTablePipelineEntryNVX
41871   {
ObjectTablePipelineEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41872     ObjectTablePipelineEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
41873                                  vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX(),
41874                                  vk::Pipeline pipeline_ = vk::Pipeline() )
41875         : type( type_ )
41876         , flags( flags_ )
41877         , pipeline( pipeline_ )
41878     {}
41879 
ObjectTablePipelineEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41880     explicit ObjectTablePipelineEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
41881                                           vk::Pipeline pipeline_ = vk::Pipeline() )
41882       : type( objectTableEntryNVX.type )
41883       , flags( objectTableEntryNVX.flags )
41884       , pipeline( pipeline_ )
41885 
41886     {}
41887 
ObjectTablePipelineEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41888     ObjectTablePipelineEntryNVX( VkObjectTablePipelineEntryNVX const & rhs )
41889     {
41890       *reinterpret_cast<VkObjectTablePipelineEntryNVX*>(this) = rhs;
41891     }
41892 
operator =VULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41893     ObjectTablePipelineEntryNVX& operator=( VkObjectTablePipelineEntryNVX const & rhs )
41894     {
41895       *reinterpret_cast<VkObjectTablePipelineEntryNVX*>(this) = rhs;
41896       return *this;
41897     }
41898 
setTypeVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41899     ObjectTablePipelineEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
41900     {
41901       type = type_;
41902       return *this;
41903     }
41904 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41905     ObjectTablePipelineEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
41906     {
41907       flags = flags_;
41908       return *this;
41909     }
41910 
setPipelineVULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41911     ObjectTablePipelineEntryNVX & setPipeline( vk::Pipeline pipeline_ )
41912     {
41913       pipeline = pipeline_;
41914       return *this;
41915     }
41916 
operator VkObjectTablePipelineEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41917     operator VkObjectTablePipelineEntryNVX const&() const
41918     {
41919       return *reinterpret_cast<const VkObjectTablePipelineEntryNVX*>( this );
41920     }
41921 
operator VkObjectTablePipelineEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41922     operator VkObjectTablePipelineEntryNVX &()
41923     {
41924       return *reinterpret_cast<VkObjectTablePipelineEntryNVX*>( this );
41925     }
41926 
operator ==VULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41927     bool operator==( ObjectTablePipelineEntryNVX const& rhs ) const
41928     {
41929       return ( type == rhs.type )
41930           && ( flags == rhs.flags )
41931           && ( pipeline == rhs.pipeline );
41932     }
41933 
operator !=VULKAN_HPP_NAMESPACE::ObjectTablePipelineEntryNVX41934     bool operator!=( ObjectTablePipelineEntryNVX const& rhs ) const
41935     {
41936       return !operator==( rhs );
41937     }
41938 
41939   public:
41940     vk::ObjectEntryTypeNVX type;
41941     vk::ObjectEntryUsageFlagsNVX flags;
41942     vk::Pipeline pipeline;
41943   };
41944   static_assert( sizeof( ObjectTablePipelineEntryNVX ) == sizeof( VkObjectTablePipelineEntryNVX ), "struct and wrapper have different size!" );
41945   static_assert( std::is_standard_layout<ObjectTablePipelineEntryNVX>::value, "struct wrapper is not a standard layout!" );
41946 
41947   struct ObjectTablePushConstantEntryNVX
41948   {
ObjectTablePushConstantEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41949     ObjectTablePushConstantEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
41950                                      vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX(),
41951                                      vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
41952                                      vk::ShaderStageFlags stageFlags_ = vk::ShaderStageFlags() )
41953         : type( type_ )
41954         , flags( flags_ )
41955         , pipelineLayout( pipelineLayout_ )
41956         , stageFlags( stageFlags_ )
41957     {}
41958 
ObjectTablePushConstantEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41959     explicit ObjectTablePushConstantEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
41960                                               vk::PipelineLayout pipelineLayout_ = vk::PipelineLayout(),
41961                                               vk::ShaderStageFlags stageFlags_ = vk::ShaderStageFlags() )
41962       : type( objectTableEntryNVX.type )
41963       , flags( objectTableEntryNVX.flags )
41964       , pipelineLayout( pipelineLayout_ )
41965       , stageFlags( stageFlags_ )
41966 
41967     {}
41968 
ObjectTablePushConstantEntryNVXVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41969     ObjectTablePushConstantEntryNVX( VkObjectTablePushConstantEntryNVX const & rhs )
41970     {
41971       *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>(this) = rhs;
41972     }
41973 
operator =VULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41974     ObjectTablePushConstantEntryNVX& operator=( VkObjectTablePushConstantEntryNVX const & rhs )
41975     {
41976       *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>(this) = rhs;
41977       return *this;
41978     }
41979 
setTypeVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41980     ObjectTablePushConstantEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
41981     {
41982       type = type_;
41983       return *this;
41984     }
41985 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41986     ObjectTablePushConstantEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
41987     {
41988       flags = flags_;
41989       return *this;
41990     }
41991 
setPipelineLayoutVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41992     ObjectTablePushConstantEntryNVX & setPipelineLayout( vk::PipelineLayout pipelineLayout_ )
41993     {
41994       pipelineLayout = pipelineLayout_;
41995       return *this;
41996     }
41997 
setStageFlagsVULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX41998     ObjectTablePushConstantEntryNVX & setStageFlags( vk::ShaderStageFlags stageFlags_ )
41999     {
42000       stageFlags = stageFlags_;
42001       return *this;
42002     }
42003 
operator VkObjectTablePushConstantEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX42004     operator VkObjectTablePushConstantEntryNVX const&() const
42005     {
42006       return *reinterpret_cast<const VkObjectTablePushConstantEntryNVX*>( this );
42007     }
42008 
operator VkObjectTablePushConstantEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX42009     operator VkObjectTablePushConstantEntryNVX &()
42010     {
42011       return *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>( this );
42012     }
42013 
operator ==VULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX42014     bool operator==( ObjectTablePushConstantEntryNVX const& rhs ) const
42015     {
42016       return ( type == rhs.type )
42017           && ( flags == rhs.flags )
42018           && ( pipelineLayout == rhs.pipelineLayout )
42019           && ( stageFlags == rhs.stageFlags );
42020     }
42021 
operator !=VULKAN_HPP_NAMESPACE::ObjectTablePushConstantEntryNVX42022     bool operator!=( ObjectTablePushConstantEntryNVX const& rhs ) const
42023     {
42024       return !operator==( rhs );
42025     }
42026 
42027   public:
42028     vk::ObjectEntryTypeNVX type;
42029     vk::ObjectEntryUsageFlagsNVX flags;
42030     vk::PipelineLayout pipelineLayout;
42031     vk::ShaderStageFlags stageFlags;
42032   };
42033   static_assert( sizeof( ObjectTablePushConstantEntryNVX ) == sizeof( VkObjectTablePushConstantEntryNVX ), "struct and wrapper have different size!" );
42034   static_assert( std::is_standard_layout<ObjectTablePushConstantEntryNVX>::value, "struct wrapper is not a standard layout!" );
42035 
42036   struct ObjectTableVertexBufferEntryNVX
42037   {
ObjectTableVertexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42038     ObjectTableVertexBufferEntryNVX( vk::ObjectEntryTypeNVX type_ = vk::ObjectEntryTypeNVX::eDescriptorSet,
42039                                      vk::ObjectEntryUsageFlagsNVX flags_ = vk::ObjectEntryUsageFlagsNVX(),
42040                                      vk::Buffer buffer_ = vk::Buffer() )
42041         : type( type_ )
42042         , flags( flags_ )
42043         , buffer( buffer_ )
42044     {}
42045 
ObjectTableVertexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42046     explicit ObjectTableVertexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
42047                                               vk::Buffer buffer_ = vk::Buffer() )
42048       : type( objectTableEntryNVX.type )
42049       , flags( objectTableEntryNVX.flags )
42050       , buffer( buffer_ )
42051 
42052     {}
42053 
ObjectTableVertexBufferEntryNVXVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42054     ObjectTableVertexBufferEntryNVX( VkObjectTableVertexBufferEntryNVX const & rhs )
42055     {
42056       *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>(this) = rhs;
42057     }
42058 
operator =VULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42059     ObjectTableVertexBufferEntryNVX& operator=( VkObjectTableVertexBufferEntryNVX const & rhs )
42060     {
42061       *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>(this) = rhs;
42062       return *this;
42063     }
42064 
setTypeVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42065     ObjectTableVertexBufferEntryNVX & setType( vk::ObjectEntryTypeNVX type_ )
42066     {
42067       type = type_;
42068       return *this;
42069     }
42070 
setFlagsVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42071     ObjectTableVertexBufferEntryNVX & setFlags( vk::ObjectEntryUsageFlagsNVX flags_ )
42072     {
42073       flags = flags_;
42074       return *this;
42075     }
42076 
setBufferVULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42077     ObjectTableVertexBufferEntryNVX & setBuffer( vk::Buffer buffer_ )
42078     {
42079       buffer = buffer_;
42080       return *this;
42081     }
42082 
operator VkObjectTableVertexBufferEntryNVX const&VULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42083     operator VkObjectTableVertexBufferEntryNVX const&() const
42084     {
42085       return *reinterpret_cast<const VkObjectTableVertexBufferEntryNVX*>( this );
42086     }
42087 
operator VkObjectTableVertexBufferEntryNVX&VULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42088     operator VkObjectTableVertexBufferEntryNVX &()
42089     {
42090       return *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>( this );
42091     }
42092 
operator ==VULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42093     bool operator==( ObjectTableVertexBufferEntryNVX const& rhs ) const
42094     {
42095       return ( type == rhs.type )
42096           && ( flags == rhs.flags )
42097           && ( buffer == rhs.buffer );
42098     }
42099 
operator !=VULKAN_HPP_NAMESPACE::ObjectTableVertexBufferEntryNVX42100     bool operator!=( ObjectTableVertexBufferEntryNVX const& rhs ) const
42101     {
42102       return !operator==( rhs );
42103     }
42104 
42105   public:
42106     vk::ObjectEntryTypeNVX type;
42107     vk::ObjectEntryUsageFlagsNVX flags;
42108     vk::Buffer buffer;
42109   };
42110   static_assert( sizeof( ObjectTableVertexBufferEntryNVX ) == sizeof( VkObjectTableVertexBufferEntryNVX ), "struct and wrapper have different size!" );
42111   static_assert( std::is_standard_layout<ObjectTableVertexBufferEntryNVX>::value, "struct wrapper is not a standard layout!" );
42112 
42113   struct PastPresentationTimingGOOGLE
42114   {
operator VkPastPresentationTimingGOOGLE const&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE42115     operator VkPastPresentationTimingGOOGLE const&() const
42116     {
42117       return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
42118     }
42119 
operator VkPastPresentationTimingGOOGLE&VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE42120     operator VkPastPresentationTimingGOOGLE &()
42121     {
42122       return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
42123     }
42124 
operator ==VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE42125     bool operator==( PastPresentationTimingGOOGLE const& rhs ) const
42126     {
42127       return ( presentID == rhs.presentID )
42128           && ( desiredPresentTime == rhs.desiredPresentTime )
42129           && ( actualPresentTime == rhs.actualPresentTime )
42130           && ( earliestPresentTime == rhs.earliestPresentTime )
42131           && ( presentMargin == rhs.presentMargin );
42132     }
42133 
operator !=VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE42134     bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const
42135     {
42136       return !operator==( rhs );
42137     }
42138 
42139   public:
42140     uint32_t presentID;
42141     uint64_t desiredPresentTime;
42142     uint64_t actualPresentTime;
42143     uint64_t earliestPresentTime;
42144     uint64_t presentMargin;
42145   };
42146   static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
42147   static_assert( std::is_standard_layout<PastPresentationTimingGOOGLE>::value, "struct wrapper is not a standard layout!" );
42148 
42149   namespace layout
42150   {
42151     struct PerformanceConfigurationAcquireInfoINTEL
42152     {
42153     protected:
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceConfigurationAcquireInfoINTEL42154       PerformanceConfigurationAcquireInfoINTEL( vk::PerformanceConfigurationTypeINTEL type_ = vk::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated )
42155         : type( type_ )
42156       {}
42157 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceConfigurationAcquireInfoINTEL42158       PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
42159       {
42160         *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(this) = rhs;
42161       }
42162 
operator =VULKAN_HPP_NAMESPACE::layout::PerformanceConfigurationAcquireInfoINTEL42163       PerformanceConfigurationAcquireInfoINTEL& operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
42164       {
42165         *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(this) = rhs;
42166         return *this;
42167       }
42168 
42169     public:
42170       vk::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
42171       const void* pNext = nullptr;
42172       vk::PerformanceConfigurationTypeINTEL type;
42173     };
42174     static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "layout struct and wrapper have different size!" );
42175   }
42176 
42177   struct PerformanceConfigurationAcquireInfoINTEL : public layout::PerformanceConfigurationAcquireInfoINTEL
42178   {
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42179     PerformanceConfigurationAcquireInfoINTEL( vk::PerformanceConfigurationTypeINTEL type_ = vk::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated )
42180       : layout::PerformanceConfigurationAcquireInfoINTEL( type_ )
42181     {}
42182 
PerformanceConfigurationAcquireInfoINTELVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42183     PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
42184       : layout::PerformanceConfigurationAcquireInfoINTEL( rhs )
42185     {}
42186 
operator =VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42187     PerformanceConfigurationAcquireInfoINTEL& operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
42188     {
42189       *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(this) = rhs;
42190       return *this;
42191     }
42192 
setPNextVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42193     PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ )
42194     {
42195       pNext = pNext_;
42196       return *this;
42197     }
42198 
setTypeVULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42199     PerformanceConfigurationAcquireInfoINTEL & setType( vk::PerformanceConfigurationTypeINTEL type_ )
42200     {
42201       type = type_;
42202       return *this;
42203     }
42204 
operator VkPerformanceConfigurationAcquireInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42205     operator VkPerformanceConfigurationAcquireInfoINTEL const&() const
42206     {
42207       return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
42208     }
42209 
operator VkPerformanceConfigurationAcquireInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42210     operator VkPerformanceConfigurationAcquireInfoINTEL &()
42211     {
42212       return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
42213     }
42214 
operator ==VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42215     bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const
42216     {
42217       return ( sType == rhs.sType )
42218           && ( pNext == rhs.pNext )
42219           && ( type == rhs.type );
42220     }
42221 
operator !=VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL42222     bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const
42223     {
42224       return !operator==( rhs );
42225     }
42226 
42227   private:
42228     using layout::PerformanceConfigurationAcquireInfoINTEL::sType;
42229   };
42230   static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
42231   static_assert( std::is_standard_layout<PerformanceConfigurationAcquireInfoINTEL>::value, "struct wrapper is not a standard layout!" );
42232 
42233   namespace layout
42234   {
42235     struct PerformanceMarkerInfoINTEL
42236     {
42237     protected:
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceMarkerInfoINTEL42238       PerformanceMarkerInfoINTEL( uint64_t marker_ = 0 )
42239         : marker( marker_ )
42240       {}
42241 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceMarkerInfoINTEL42242       PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs )
42243       {
42244         *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>(this) = rhs;
42245       }
42246 
operator =VULKAN_HPP_NAMESPACE::layout::PerformanceMarkerInfoINTEL42247       PerformanceMarkerInfoINTEL& operator=( VkPerformanceMarkerInfoINTEL const & rhs )
42248       {
42249         *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>(this) = rhs;
42250         return *this;
42251       }
42252 
42253     public:
42254       vk::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
42255       const void* pNext = nullptr;
42256       uint64_t marker;
42257     };
42258     static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "layout struct and wrapper have different size!" );
42259   }
42260 
42261   struct PerformanceMarkerInfoINTEL : public layout::PerformanceMarkerInfoINTEL
42262   {
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42263     PerformanceMarkerInfoINTEL( uint64_t marker_ = 0 )
42264       : layout::PerformanceMarkerInfoINTEL( marker_ )
42265     {}
42266 
PerformanceMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42267     PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs )
42268       : layout::PerformanceMarkerInfoINTEL( rhs )
42269     {}
42270 
operator =VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42271     PerformanceMarkerInfoINTEL& operator=( VkPerformanceMarkerInfoINTEL const & rhs )
42272     {
42273       *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>(this) = rhs;
42274       return *this;
42275     }
42276 
setPNextVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42277     PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ )
42278     {
42279       pNext = pNext_;
42280       return *this;
42281     }
42282 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42283     PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ )
42284     {
42285       marker = marker_;
42286       return *this;
42287     }
42288 
operator VkPerformanceMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42289     operator VkPerformanceMarkerInfoINTEL const&() const
42290     {
42291       return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
42292     }
42293 
operator VkPerformanceMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42294     operator VkPerformanceMarkerInfoINTEL &()
42295     {
42296       return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
42297     }
42298 
operator ==VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42299     bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const
42300     {
42301       return ( sType == rhs.sType )
42302           && ( pNext == rhs.pNext )
42303           && ( marker == rhs.marker );
42304     }
42305 
operator !=VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL42306     bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const
42307     {
42308       return !operator==( rhs );
42309     }
42310 
42311   private:
42312     using layout::PerformanceMarkerInfoINTEL::sType;
42313   };
42314   static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
42315   static_assert( std::is_standard_layout<PerformanceMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
42316 
42317   namespace layout
42318   {
42319     struct PerformanceOverrideInfoINTEL
42320     {
42321     protected:
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceOverrideInfoINTEL42322       PerformanceOverrideInfoINTEL( vk::PerformanceOverrideTypeINTEL type_ = vk::PerformanceOverrideTypeINTEL::eNullHardware,
42323                                     vk::Bool32 enable_ = 0,
42324                                     uint64_t parameter_ = 0 )
42325         : type( type_ )
42326         , enable( enable_ )
42327         , parameter( parameter_ )
42328       {}
42329 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceOverrideInfoINTEL42330       PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs )
42331       {
42332         *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>(this) = rhs;
42333       }
42334 
operator =VULKAN_HPP_NAMESPACE::layout::PerformanceOverrideInfoINTEL42335       PerformanceOverrideInfoINTEL& operator=( VkPerformanceOverrideInfoINTEL const & rhs )
42336       {
42337         *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>(this) = rhs;
42338         return *this;
42339       }
42340 
42341     public:
42342       vk::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
42343       const void* pNext = nullptr;
42344       vk::PerformanceOverrideTypeINTEL type;
42345       vk::Bool32 enable;
42346       uint64_t parameter;
42347     };
42348     static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "layout struct and wrapper have different size!" );
42349   }
42350 
42351   struct PerformanceOverrideInfoINTEL : public layout::PerformanceOverrideInfoINTEL
42352   {
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42353     PerformanceOverrideInfoINTEL( vk::PerformanceOverrideTypeINTEL type_ = vk::PerformanceOverrideTypeINTEL::eNullHardware,
42354                                   vk::Bool32 enable_ = 0,
42355                                   uint64_t parameter_ = 0 )
42356       : layout::PerformanceOverrideInfoINTEL( type_, enable_, parameter_ )
42357     {}
42358 
PerformanceOverrideInfoINTELVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42359     PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs )
42360       : layout::PerformanceOverrideInfoINTEL( rhs )
42361     {}
42362 
operator =VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42363     PerformanceOverrideInfoINTEL& operator=( VkPerformanceOverrideInfoINTEL const & rhs )
42364     {
42365       *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>(this) = rhs;
42366       return *this;
42367     }
42368 
setPNextVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42369     PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ )
42370     {
42371       pNext = pNext_;
42372       return *this;
42373     }
42374 
setTypeVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42375     PerformanceOverrideInfoINTEL & setType( vk::PerformanceOverrideTypeINTEL type_ )
42376     {
42377       type = type_;
42378       return *this;
42379     }
42380 
setEnableVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42381     PerformanceOverrideInfoINTEL & setEnable( vk::Bool32 enable_ )
42382     {
42383       enable = enable_;
42384       return *this;
42385     }
42386 
setParameterVULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42387     PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ )
42388     {
42389       parameter = parameter_;
42390       return *this;
42391     }
42392 
operator VkPerformanceOverrideInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42393     operator VkPerformanceOverrideInfoINTEL const&() const
42394     {
42395       return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
42396     }
42397 
operator VkPerformanceOverrideInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42398     operator VkPerformanceOverrideInfoINTEL &()
42399     {
42400       return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
42401     }
42402 
operator ==VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42403     bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const
42404     {
42405       return ( sType == rhs.sType )
42406           && ( pNext == rhs.pNext )
42407           && ( type == rhs.type )
42408           && ( enable == rhs.enable )
42409           && ( parameter == rhs.parameter );
42410     }
42411 
operator !=VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL42412     bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const
42413     {
42414       return !operator==( rhs );
42415     }
42416 
42417   private:
42418     using layout::PerformanceOverrideInfoINTEL::sType;
42419   };
42420   static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
42421   static_assert( std::is_standard_layout<PerformanceOverrideInfoINTEL>::value, "struct wrapper is not a standard layout!" );
42422 
42423   namespace layout
42424   {
42425     struct PerformanceStreamMarkerInfoINTEL
42426     {
42427     protected:
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceStreamMarkerInfoINTEL42428       PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = 0 )
42429         : marker( marker_ )
42430       {}
42431 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::layout::PerformanceStreamMarkerInfoINTEL42432       PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs )
42433       {
42434         *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>(this) = rhs;
42435       }
42436 
operator =VULKAN_HPP_NAMESPACE::layout::PerformanceStreamMarkerInfoINTEL42437       PerformanceStreamMarkerInfoINTEL& operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs )
42438       {
42439         *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>(this) = rhs;
42440         return *this;
42441       }
42442 
42443     public:
42444       vk::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
42445       const void* pNext = nullptr;
42446       uint32_t marker;
42447     };
42448     static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "layout struct and wrapper have different size!" );
42449   }
42450 
42451   struct PerformanceStreamMarkerInfoINTEL : public layout::PerformanceStreamMarkerInfoINTEL
42452   {
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42453     PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = 0 )
42454       : layout::PerformanceStreamMarkerInfoINTEL( marker_ )
42455     {}
42456 
PerformanceStreamMarkerInfoINTELVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42457     PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs )
42458       : layout::PerformanceStreamMarkerInfoINTEL( rhs )
42459     {}
42460 
operator =VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42461     PerformanceStreamMarkerInfoINTEL& operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs )
42462     {
42463       *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>(this) = rhs;
42464       return *this;
42465     }
42466 
setPNextVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42467     PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ )
42468     {
42469       pNext = pNext_;
42470       return *this;
42471     }
42472 
setMarkerVULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42473     PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ )
42474     {
42475       marker = marker_;
42476       return *this;
42477     }
42478 
operator VkPerformanceStreamMarkerInfoINTEL const&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42479     operator VkPerformanceStreamMarkerInfoINTEL const&() const
42480     {
42481       return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
42482     }
42483 
operator VkPerformanceStreamMarkerInfoINTEL&VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42484     operator VkPerformanceStreamMarkerInfoINTEL &()
42485     {
42486       return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
42487     }
42488 
operator ==VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42489     bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const
42490     {
42491       return ( sType == rhs.sType )
42492           && ( pNext == rhs.pNext )
42493           && ( marker == rhs.marker );
42494     }
42495 
operator !=VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL42496     bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const
42497     {
42498       return !operator==( rhs );
42499     }
42500 
42501   private:
42502     using layout::PerformanceStreamMarkerInfoINTEL::sType;
42503   };
42504   static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
42505   static_assert( std::is_standard_layout<PerformanceStreamMarkerInfoINTEL>::value, "struct wrapper is not a standard layout!" );
42506 
42507   union PerformanceValueDataINTEL
42508   {
PerformanceValueDataINTEL(uint32_t value32_=0)42509     PerformanceValueDataINTEL( uint32_t value32_ = 0 )
42510     {
42511       value32 = value32_;
42512     }
42513 
PerformanceValueDataINTEL(uint64_t value64_)42514     PerformanceValueDataINTEL( uint64_t value64_ )
42515     {
42516       value64 = value64_;
42517     }
42518 
PerformanceValueDataINTEL(float valueFloat_)42519     PerformanceValueDataINTEL( float valueFloat_ )
42520     {
42521       valueFloat = valueFloat_;
42522     }
42523 
PerformanceValueDataINTEL(const char * valueString_)42524     PerformanceValueDataINTEL( const char* valueString_ )
42525     {
42526       valueString = valueString_;
42527     }
42528 
setValue32(uint32_t value32_)42529     PerformanceValueDataINTEL & setValue32( uint32_t value32_ )
42530     {
42531       value32 = value32_;
42532       return *this;
42533     }
42534 
setValue64(uint64_t value64_)42535     PerformanceValueDataINTEL & setValue64( uint64_t value64_ )
42536     {
42537       value64 = value64_;
42538       return *this;
42539     }
42540 
setValueFloat(float valueFloat_)42541     PerformanceValueDataINTEL & setValueFloat( float valueFloat_ )
42542     {
42543       valueFloat = valueFloat_;
42544       return *this;
42545     }
42546 
setValueBool(vk::Bool32 valueBool_)42547     PerformanceValueDataINTEL & setValueBool( vk::Bool32 valueBool_ )
42548     {
42549       valueBool = valueBool_;
42550       return *this;
42551     }
42552 
setValueString(const char * valueString_)42553     PerformanceValueDataINTEL & setValueString( const char* valueString_ )
42554     {
42555       valueString = valueString_;
42556       return *this;
42557     }
operator VkPerformanceValueDataINTEL const&() const42558     operator VkPerformanceValueDataINTEL const&() const
42559     {
42560       return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
42561     }
42562 
operator VkPerformanceValueDataINTEL&()42563     operator VkPerformanceValueDataINTEL &()
42564     {
42565       return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
42566     }
42567 
42568 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
42569     uint32_t value32;
42570     uint64_t value64;
42571     float valueFloat;
42572     vk::Bool32 valueBool;
42573     const char* valueString;
42574 #else
42575     uint32_t value32;
42576     uint64_t value64;
42577     float valueFloat;
42578     VkBool32 valueBool;
42579     const char* valueString;
42580 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
42581   };
42582 
42583   struct PerformanceValueINTEL
42584   {
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL42585     PerformanceValueINTEL( vk::PerformanceValueTypeINTEL type_ = vk::PerformanceValueTypeINTEL::eUint32,
42586                            vk::PerformanceValueDataINTEL data_ = vk::PerformanceValueDataINTEL() )
42587         : type( type_ )
42588         , data( data_ )
42589     {}
42590 
PerformanceValueINTELVULKAN_HPP_NAMESPACE::PerformanceValueINTEL42591     PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs )
42592     {
42593       *reinterpret_cast<VkPerformanceValueINTEL*>(this) = rhs;
42594     }
42595 
operator =VULKAN_HPP_NAMESPACE::PerformanceValueINTEL42596     PerformanceValueINTEL& operator=( VkPerformanceValueINTEL const & rhs )
42597     {
42598       *reinterpret_cast<VkPerformanceValueINTEL*>(this) = rhs;
42599       return *this;
42600     }
42601 
setTypeVULKAN_HPP_NAMESPACE::PerformanceValueINTEL42602     PerformanceValueINTEL & setType( vk::PerformanceValueTypeINTEL type_ )
42603     {
42604       type = type_;
42605       return *this;
42606     }
42607 
setDataVULKAN_HPP_NAMESPACE::PerformanceValueINTEL42608     PerformanceValueINTEL & setData( vk::PerformanceValueDataINTEL data_ )
42609     {
42610       data = data_;
42611       return *this;
42612     }
42613 
operator VkPerformanceValueINTEL const&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL42614     operator VkPerformanceValueINTEL const&() const
42615     {
42616       return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
42617     }
42618 
operator VkPerformanceValueINTEL&VULKAN_HPP_NAMESPACE::PerformanceValueINTEL42619     operator VkPerformanceValueINTEL &()
42620     {
42621       return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
42622     }
42623 
42624   public:
42625     vk::PerformanceValueTypeINTEL type;
42626     vk::PerformanceValueDataINTEL data;
42627   };
42628   static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
42629   static_assert( std::is_standard_layout<PerformanceValueINTEL>::value, "struct wrapper is not a standard layout!" );
42630 
42631   namespace layout
42632   {
42633     struct PhysicalDevice16BitStorageFeatures
42634     {
42635     protected:
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDevice16BitStorageFeatures42636       PhysicalDevice16BitStorageFeatures( vk::Bool32 storageBuffer16BitAccess_ = 0,
42637                                           vk::Bool32 uniformAndStorageBuffer16BitAccess_ = 0,
42638                                           vk::Bool32 storagePushConstant16_ = 0,
42639                                           vk::Bool32 storageInputOutput16_ = 0 )
42640         : storageBuffer16BitAccess( storageBuffer16BitAccess_ )
42641         , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
42642         , storagePushConstant16( storagePushConstant16_ )
42643         , storageInputOutput16( storageInputOutput16_ )
42644       {}
42645 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDevice16BitStorageFeatures42646       PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs )
42647       {
42648         *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this) = rhs;
42649       }
42650 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevice16BitStorageFeatures42651       PhysicalDevice16BitStorageFeatures& operator=( VkPhysicalDevice16BitStorageFeatures const & rhs )
42652       {
42653         *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this) = rhs;
42654         return *this;
42655       }
42656 
42657     public:
42658       vk::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
42659       void* pNext = nullptr;
42660       vk::Bool32 storageBuffer16BitAccess;
42661       vk::Bool32 uniformAndStorageBuffer16BitAccess;
42662       vk::Bool32 storagePushConstant16;
42663       vk::Bool32 storageInputOutput16;
42664     };
42665     static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "layout struct and wrapper have different size!" );
42666   }
42667 
42668   struct PhysicalDevice16BitStorageFeatures : public layout::PhysicalDevice16BitStorageFeatures
42669   {
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42670     PhysicalDevice16BitStorageFeatures( vk::Bool32 storageBuffer16BitAccess_ = 0,
42671                                         vk::Bool32 uniformAndStorageBuffer16BitAccess_ = 0,
42672                                         vk::Bool32 storagePushConstant16_ = 0,
42673                                         vk::Bool32 storageInputOutput16_ = 0 )
42674       : layout::PhysicalDevice16BitStorageFeatures( storageBuffer16BitAccess_, uniformAndStorageBuffer16BitAccess_, storagePushConstant16_, storageInputOutput16_ )
42675     {}
42676 
PhysicalDevice16BitStorageFeaturesVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42677     PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs )
42678       : layout::PhysicalDevice16BitStorageFeatures( rhs )
42679     {}
42680 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42681     PhysicalDevice16BitStorageFeatures& operator=( VkPhysicalDevice16BitStorageFeatures const & rhs )
42682     {
42683       *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this) = rhs;
42684       return *this;
42685     }
42686 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42687     PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ )
42688     {
42689       pNext = pNext_;
42690       return *this;
42691     }
42692 
setStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42693     PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( vk::Bool32 storageBuffer16BitAccess_ )
42694     {
42695       storageBuffer16BitAccess = storageBuffer16BitAccess_;
42696       return *this;
42697     }
42698 
setUniformAndStorageBuffer16BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42699     PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( vk::Bool32 uniformAndStorageBuffer16BitAccess_ )
42700     {
42701       uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
42702       return *this;
42703     }
42704 
setStoragePushConstant16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42705     PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( vk::Bool32 storagePushConstant16_ )
42706     {
42707       storagePushConstant16 = storagePushConstant16_;
42708       return *this;
42709     }
42710 
setStorageInputOutput16VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42711     PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( vk::Bool32 storageInputOutput16_ )
42712     {
42713       storageInputOutput16 = storageInputOutput16_;
42714       return *this;
42715     }
42716 
operator VkPhysicalDevice16BitStorageFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42717     operator VkPhysicalDevice16BitStorageFeatures const&() const
42718     {
42719       return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
42720     }
42721 
operator VkPhysicalDevice16BitStorageFeatures&VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42722     operator VkPhysicalDevice16BitStorageFeatures &()
42723     {
42724       return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
42725     }
42726 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42727     bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const
42728     {
42729       return ( sType == rhs.sType )
42730           && ( pNext == rhs.pNext )
42731           && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
42732           && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
42733           && ( storagePushConstant16 == rhs.storagePushConstant16 )
42734           && ( storageInputOutput16 == rhs.storageInputOutput16 );
42735     }
42736 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures42737     bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const
42738     {
42739       return !operator==( rhs );
42740     }
42741 
42742   private:
42743     using layout::PhysicalDevice16BitStorageFeatures::sType;
42744   };
42745   static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
42746   static_assert( std::is_standard_layout<PhysicalDevice16BitStorageFeatures>::value, "struct wrapper is not a standard layout!" );
42747 
42748   namespace layout
42749   {
42750     struct PhysicalDevice8BitStorageFeaturesKHR
42751     {
42752     protected:
PhysicalDevice8BitStorageFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevice8BitStorageFeaturesKHR42753       PhysicalDevice8BitStorageFeaturesKHR( vk::Bool32 storageBuffer8BitAccess_ = 0,
42754                                             vk::Bool32 uniformAndStorageBuffer8BitAccess_ = 0,
42755                                             vk::Bool32 storagePushConstant8_ = 0 )
42756         : storageBuffer8BitAccess( storageBuffer8BitAccess_ )
42757         , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
42758         , storagePushConstant8( storagePushConstant8_ )
42759       {}
42760 
PhysicalDevice8BitStorageFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevice8BitStorageFeaturesKHR42761       PhysicalDevice8BitStorageFeaturesKHR( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
42762       {
42763         *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this) = rhs;
42764       }
42765 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevice8BitStorageFeaturesKHR42766       PhysicalDevice8BitStorageFeaturesKHR& operator=( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
42767       {
42768         *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this) = rhs;
42769         return *this;
42770       }
42771 
42772     public:
42773       vk::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeaturesKHR;
42774       void* pNext = nullptr;
42775       vk::Bool32 storageBuffer8BitAccess;
42776       vk::Bool32 uniformAndStorageBuffer8BitAccess;
42777       vk::Bool32 storagePushConstant8;
42778     };
42779     static_assert( sizeof( PhysicalDevice8BitStorageFeaturesKHR ) == sizeof( VkPhysicalDevice8BitStorageFeaturesKHR ), "layout struct and wrapper have different size!" );
42780   }
42781 
42782   struct PhysicalDevice8BitStorageFeaturesKHR : public layout::PhysicalDevice8BitStorageFeaturesKHR
42783   {
PhysicalDevice8BitStorageFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42784     PhysicalDevice8BitStorageFeaturesKHR( vk::Bool32 storageBuffer8BitAccess_ = 0,
42785                                           vk::Bool32 uniformAndStorageBuffer8BitAccess_ = 0,
42786                                           vk::Bool32 storagePushConstant8_ = 0 )
42787       : layout::PhysicalDevice8BitStorageFeaturesKHR( storageBuffer8BitAccess_, uniformAndStorageBuffer8BitAccess_, storagePushConstant8_ )
42788     {}
42789 
PhysicalDevice8BitStorageFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42790     PhysicalDevice8BitStorageFeaturesKHR( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
42791       : layout::PhysicalDevice8BitStorageFeaturesKHR( rhs )
42792     {}
42793 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42794     PhysicalDevice8BitStorageFeaturesKHR& operator=( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
42795     {
42796       *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this) = rhs;
42797       return *this;
42798     }
42799 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42800     PhysicalDevice8BitStorageFeaturesKHR & setPNext( void* pNext_ )
42801     {
42802       pNext = pNext_;
42803       return *this;
42804     }
42805 
setStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42806     PhysicalDevice8BitStorageFeaturesKHR & setStorageBuffer8BitAccess( vk::Bool32 storageBuffer8BitAccess_ )
42807     {
42808       storageBuffer8BitAccess = storageBuffer8BitAccess_;
42809       return *this;
42810     }
42811 
setUniformAndStorageBuffer8BitAccessVULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42812     PhysicalDevice8BitStorageFeaturesKHR & setUniformAndStorageBuffer8BitAccess( vk::Bool32 uniformAndStorageBuffer8BitAccess_ )
42813     {
42814       uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
42815       return *this;
42816     }
42817 
setStoragePushConstant8VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42818     PhysicalDevice8BitStorageFeaturesKHR & setStoragePushConstant8( vk::Bool32 storagePushConstant8_ )
42819     {
42820       storagePushConstant8 = storagePushConstant8_;
42821       return *this;
42822     }
42823 
operator VkPhysicalDevice8BitStorageFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42824     operator VkPhysicalDevice8BitStorageFeaturesKHR const&() const
42825     {
42826       return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>( this );
42827     }
42828 
operator VkPhysicalDevice8BitStorageFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42829     operator VkPhysicalDevice8BitStorageFeaturesKHR &()
42830     {
42831       return *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>( this );
42832     }
42833 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42834     bool operator==( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const
42835     {
42836       return ( sType == rhs.sType )
42837           && ( pNext == rhs.pNext )
42838           && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
42839           && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
42840           && ( storagePushConstant8 == rhs.storagePushConstant8 );
42841     }
42842 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeaturesKHR42843     bool operator!=( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const
42844     {
42845       return !operator==( rhs );
42846     }
42847 
42848   private:
42849     using layout::PhysicalDevice8BitStorageFeaturesKHR::sType;
42850   };
42851   static_assert( sizeof( PhysicalDevice8BitStorageFeaturesKHR ) == sizeof( VkPhysicalDevice8BitStorageFeaturesKHR ), "struct and wrapper have different size!" );
42852   static_assert( std::is_standard_layout<PhysicalDevice8BitStorageFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
42853 
42854   namespace layout
42855   {
42856     struct PhysicalDeviceASTCDecodeFeaturesEXT
42857     {
42858     protected:
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceASTCDecodeFeaturesEXT42859       PhysicalDeviceASTCDecodeFeaturesEXT( vk::Bool32 decodeModeSharedExponent_ = 0 )
42860         : decodeModeSharedExponent( decodeModeSharedExponent_ )
42861       {}
42862 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceASTCDecodeFeaturesEXT42863       PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
42864       {
42865         *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this) = rhs;
42866       }
42867 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceASTCDecodeFeaturesEXT42868       PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
42869       {
42870         *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this) = rhs;
42871         return *this;
42872       }
42873 
42874     public:
42875       vk::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
42876       void* pNext = nullptr;
42877       vk::Bool32 decodeModeSharedExponent;
42878     };
42879     static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "layout struct and wrapper have different size!" );
42880   }
42881 
42882   struct PhysicalDeviceASTCDecodeFeaturesEXT : public layout::PhysicalDeviceASTCDecodeFeaturesEXT
42883   {
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42884     PhysicalDeviceASTCDecodeFeaturesEXT( vk::Bool32 decodeModeSharedExponent_ = 0 )
42885       : layout::PhysicalDeviceASTCDecodeFeaturesEXT( decodeModeSharedExponent_ )
42886     {}
42887 
PhysicalDeviceASTCDecodeFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42888     PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
42889       : layout::PhysicalDeviceASTCDecodeFeaturesEXT( rhs )
42890     {}
42891 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42892     PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
42893     {
42894       *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this) = rhs;
42895       return *this;
42896     }
42897 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42898     PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ )
42899     {
42900       pNext = pNext_;
42901       return *this;
42902     }
42903 
setDecodeModeSharedExponentVULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42904     PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( vk::Bool32 decodeModeSharedExponent_ )
42905     {
42906       decodeModeSharedExponent = decodeModeSharedExponent_;
42907       return *this;
42908     }
42909 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42910     operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const
42911     {
42912       return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
42913     }
42914 
operator VkPhysicalDeviceASTCDecodeFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42915     operator VkPhysicalDeviceASTCDecodeFeaturesEXT &()
42916     {
42917       return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
42918     }
42919 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42920     bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const
42921     {
42922       return ( sType == rhs.sType )
42923           && ( pNext == rhs.pNext )
42924           && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
42925     }
42926 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT42927     bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const
42928     {
42929       return !operator==( rhs );
42930     }
42931 
42932   private:
42933     using layout::PhysicalDeviceASTCDecodeFeaturesEXT::sType;
42934   };
42935   static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
42936   static_assert( std::is_standard_layout<PhysicalDeviceASTCDecodeFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
42937 
42938   namespace layout
42939   {
42940     struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
42941     {
42942     protected:
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42943       PhysicalDeviceBlendOperationAdvancedFeaturesEXT( vk::Bool32 advancedBlendCoherentOperations_ = 0 )
42944         : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
42945       {}
42946 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42947       PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
42948       {
42949         *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this) = rhs;
42950       }
42951 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42952       PhysicalDeviceBlendOperationAdvancedFeaturesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
42953       {
42954         *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this) = rhs;
42955         return *this;
42956       }
42957 
42958     public:
42959       vk::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
42960       void* pNext = nullptr;
42961       vk::Bool32 advancedBlendCoherentOperations;
42962     };
42963     static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "layout struct and wrapper have different size!" );
42964   }
42965 
42966   struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT : public layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT
42967   {
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42968     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( vk::Bool32 advancedBlendCoherentOperations_ = 0 )
42969       : layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT( advancedBlendCoherentOperations_ )
42970     {}
42971 
PhysicalDeviceBlendOperationAdvancedFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42972     PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
42973       : layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT( rhs )
42974     {}
42975 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42976     PhysicalDeviceBlendOperationAdvancedFeaturesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
42977     {
42978       *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this) = rhs;
42979       return *this;
42980     }
42981 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42982     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ )
42983     {
42984       pNext = pNext_;
42985       return *this;
42986     }
42987 
setAdvancedBlendCoherentOperationsVULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42988     PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( vk::Bool32 advancedBlendCoherentOperations_ )
42989     {
42990       advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
42991       return *this;
42992     }
42993 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42994     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const
42995     {
42996       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
42997     }
42998 
operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT42999     operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &()
43000     {
43001       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
43002     }
43003 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT43004     bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const
43005     {
43006       return ( sType == rhs.sType )
43007           && ( pNext == rhs.pNext )
43008           && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
43009     }
43010 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT43011     bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const
43012     {
43013       return !operator==( rhs );
43014     }
43015 
43016   private:
43017     using layout::PhysicalDeviceBlendOperationAdvancedFeaturesEXT::sType;
43018   };
43019   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
43020   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
43021 
43022   namespace layout
43023   {
43024     struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
43025     {
43026     protected:
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43027       PhysicalDeviceBlendOperationAdvancedPropertiesEXT( uint32_t advancedBlendMaxColorAttachments_ = 0,
43028                                                          vk::Bool32 advancedBlendIndependentBlend_ = 0,
43029                                                          vk::Bool32 advancedBlendNonPremultipliedSrcColor_ = 0,
43030                                                          vk::Bool32 advancedBlendNonPremultipliedDstColor_ = 0,
43031                                                          vk::Bool32 advancedBlendCorrelatedOverlap_ = 0,
43032                                                          vk::Bool32 advancedBlendAllOperations_ = 0 )
43033         : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ )
43034         , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ )
43035         , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ )
43036         , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ )
43037         , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ )
43038         , advancedBlendAllOperations( advancedBlendAllOperations_ )
43039       {}
43040 
PhysicalDeviceBlendOperationAdvancedPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43041       PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs )
43042       {
43043         *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(this) = rhs;
43044       }
43045 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43046       PhysicalDeviceBlendOperationAdvancedPropertiesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs )
43047       {
43048         *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(this) = rhs;
43049         return *this;
43050       }
43051 
43052     public:
43053       vk::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
43054       void* pNext = nullptr;
43055       uint32_t advancedBlendMaxColorAttachments;
43056       vk::Bool32 advancedBlendIndependentBlend;
43057       vk::Bool32 advancedBlendNonPremultipliedSrcColor;
43058       vk::Bool32 advancedBlendNonPremultipliedDstColor;
43059       vk::Bool32 advancedBlendCorrelatedOverlap;
43060       vk::Bool32 advancedBlendAllOperations;
43061     };
43062     static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "layout struct and wrapper have different size!" );
43063   }
43064 
43065   struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT : public layout::PhysicalDeviceBlendOperationAdvancedPropertiesEXT
43066   {
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43067     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const
43068     {
43069       return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
43070     }
43071 
operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43072     operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &()
43073     {
43074       return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
43075     }
43076 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43077     bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const
43078     {
43079       return ( sType == rhs.sType )
43080           && ( pNext == rhs.pNext )
43081           && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
43082           && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
43083           && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
43084           && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
43085           && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
43086           && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
43087     }
43088 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT43089     bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const
43090     {
43091       return !operator==( rhs );
43092     }
43093 
43094   private:
43095     using layout::PhysicalDeviceBlendOperationAdvancedPropertiesEXT::sType;
43096   };
43097   static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
43098   static_assert( std::is_standard_layout<PhysicalDeviceBlendOperationAdvancedPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
43099 
43100   namespace layout
43101   {
43102     struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
43103     {
43104     protected:
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT43105       PhysicalDeviceBufferDeviceAddressFeaturesEXT( vk::Bool32 bufferDeviceAddress_ = 0,
43106                                                     vk::Bool32 bufferDeviceAddressCaptureReplay_ = 0,
43107                                                     vk::Bool32 bufferDeviceAddressMultiDevice_ = 0 )
43108         : bufferDeviceAddress( bufferDeviceAddress_ )
43109         , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
43110         , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
43111       {}
43112 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT43113       PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
43114       {
43115         *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(this) = rhs;
43116       }
43117 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT43118       PhysicalDeviceBufferDeviceAddressFeaturesEXT& operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
43119       {
43120         *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(this) = rhs;
43121         return *this;
43122       }
43123 
43124     public:
43125       vk::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
43126       void* pNext = nullptr;
43127       vk::Bool32 bufferDeviceAddress;
43128       vk::Bool32 bufferDeviceAddressCaptureReplay;
43129       vk::Bool32 bufferDeviceAddressMultiDevice;
43130     };
43131     static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "layout struct and wrapper have different size!" );
43132   }
43133 
43134   struct PhysicalDeviceBufferDeviceAddressFeaturesEXT : public layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT
43135   {
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43136     PhysicalDeviceBufferDeviceAddressFeaturesEXT( vk::Bool32 bufferDeviceAddress_ = 0,
43137                                                   vk::Bool32 bufferDeviceAddressCaptureReplay_ = 0,
43138                                                   vk::Bool32 bufferDeviceAddressMultiDevice_ = 0 )
43139       : layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT( bufferDeviceAddress_, bufferDeviceAddressCaptureReplay_, bufferDeviceAddressMultiDevice_ )
43140     {}
43141 
PhysicalDeviceBufferDeviceAddressFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43142     PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
43143       : layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT( rhs )
43144     {}
43145 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43146     PhysicalDeviceBufferDeviceAddressFeaturesEXT& operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
43147     {
43148       *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(this) = rhs;
43149       return *this;
43150     }
43151 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43152     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ )
43153     {
43154       pNext = pNext_;
43155       return *this;
43156     }
43157 
setBufferDeviceAddressVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43158     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( vk::Bool32 bufferDeviceAddress_ )
43159     {
43160       bufferDeviceAddress = bufferDeviceAddress_;
43161       return *this;
43162     }
43163 
setBufferDeviceAddressCaptureReplayVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43164     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( vk::Bool32 bufferDeviceAddressCaptureReplay_ )
43165     {
43166       bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
43167       return *this;
43168     }
43169 
setBufferDeviceAddressMultiDeviceVULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43170     PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( vk::Bool32 bufferDeviceAddressMultiDevice_ )
43171     {
43172       bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
43173       return *this;
43174     }
43175 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43176     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const
43177     {
43178       return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
43179     }
43180 
operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43181     operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &()
43182     {
43183       return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
43184     }
43185 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43186     bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const
43187     {
43188       return ( sType == rhs.sType )
43189           && ( pNext == rhs.pNext )
43190           && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
43191           && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
43192           && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
43193     }
43194 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT43195     bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const
43196     {
43197       return !operator==( rhs );
43198     }
43199 
43200   private:
43201     using layout::PhysicalDeviceBufferDeviceAddressFeaturesEXT::sType;
43202   };
43203   static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
43204   static_assert( std::is_standard_layout<PhysicalDeviceBufferDeviceAddressFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
43205 
43206   namespace layout
43207   {
43208     struct PhysicalDeviceCoherentMemoryFeaturesAMD
43209     {
43210     protected:
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoherentMemoryFeaturesAMD43211       PhysicalDeviceCoherentMemoryFeaturesAMD( vk::Bool32 deviceCoherentMemory_ = 0 )
43212         : deviceCoherentMemory( deviceCoherentMemory_ )
43213       {}
43214 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoherentMemoryFeaturesAMD43215       PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs )
43216       {
43217         *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(this) = rhs;
43218       }
43219 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoherentMemoryFeaturesAMD43220       PhysicalDeviceCoherentMemoryFeaturesAMD& operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs )
43221       {
43222         *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(this) = rhs;
43223         return *this;
43224       }
43225 
43226     public:
43227       vk::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
43228       void* pNext = nullptr;
43229       vk::Bool32 deviceCoherentMemory;
43230     };
43231     static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "layout struct and wrapper have different size!" );
43232   }
43233 
43234   struct PhysicalDeviceCoherentMemoryFeaturesAMD : public layout::PhysicalDeviceCoherentMemoryFeaturesAMD
43235   {
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43236     PhysicalDeviceCoherentMemoryFeaturesAMD( vk::Bool32 deviceCoherentMemory_ = 0 )
43237       : layout::PhysicalDeviceCoherentMemoryFeaturesAMD( deviceCoherentMemory_ )
43238     {}
43239 
PhysicalDeviceCoherentMemoryFeaturesAMDVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43240     PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs )
43241       : layout::PhysicalDeviceCoherentMemoryFeaturesAMD( rhs )
43242     {}
43243 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43244     PhysicalDeviceCoherentMemoryFeaturesAMD& operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs )
43245     {
43246       *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(this) = rhs;
43247       return *this;
43248     }
43249 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43250     PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ )
43251     {
43252       pNext = pNext_;
43253       return *this;
43254     }
43255 
setDeviceCoherentMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43256     PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( vk::Bool32 deviceCoherentMemory_ )
43257     {
43258       deviceCoherentMemory = deviceCoherentMemory_;
43259       return *this;
43260     }
43261 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43262     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const
43263     {
43264       return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
43265     }
43266 
operator VkPhysicalDeviceCoherentMemoryFeaturesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43267     operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &()
43268     {
43269       return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>( this );
43270     }
43271 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43272     bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const
43273     {
43274       return ( sType == rhs.sType )
43275           && ( pNext == rhs.pNext )
43276           && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
43277     }
43278 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD43279     bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const
43280     {
43281       return !operator==( rhs );
43282     }
43283 
43284   private:
43285     using layout::PhysicalDeviceCoherentMemoryFeaturesAMD::sType;
43286   };
43287   static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" );
43288   static_assert( std::is_standard_layout<PhysicalDeviceCoherentMemoryFeaturesAMD>::value, "struct wrapper is not a standard layout!" );
43289 
43290   namespace layout
43291   {
43292     struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
43293     {
43294     protected:
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV43295       PhysicalDeviceComputeShaderDerivativesFeaturesNV( vk::Bool32 computeDerivativeGroupQuads_ = 0,
43296                                                         vk::Bool32 computeDerivativeGroupLinear_ = 0 )
43297         : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
43298         , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
43299       {}
43300 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV43301       PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
43302       {
43303         *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this) = rhs;
43304       }
43305 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV43306       PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
43307       {
43308         *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this) = rhs;
43309         return *this;
43310       }
43311 
43312     public:
43313       vk::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
43314       void* pNext = nullptr;
43315       vk::Bool32 computeDerivativeGroupQuads;
43316       vk::Bool32 computeDerivativeGroupLinear;
43317     };
43318     static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "layout struct and wrapper have different size!" );
43319   }
43320 
43321   struct PhysicalDeviceComputeShaderDerivativesFeaturesNV : public layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV
43322   {
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43323     PhysicalDeviceComputeShaderDerivativesFeaturesNV( vk::Bool32 computeDerivativeGroupQuads_ = 0,
43324                                                       vk::Bool32 computeDerivativeGroupLinear_ = 0 )
43325       : layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV( computeDerivativeGroupQuads_, computeDerivativeGroupLinear_ )
43326     {}
43327 
PhysicalDeviceComputeShaderDerivativesFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43328     PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
43329       : layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV( rhs )
43330     {}
43331 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43332     PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
43333     {
43334       *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this) = rhs;
43335       return *this;
43336     }
43337 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43338     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ )
43339     {
43340       pNext = pNext_;
43341       return *this;
43342     }
43343 
setComputeDerivativeGroupQuadsVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43344     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( vk::Bool32 computeDerivativeGroupQuads_ )
43345     {
43346       computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
43347       return *this;
43348     }
43349 
setComputeDerivativeGroupLinearVULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43350     PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( vk::Bool32 computeDerivativeGroupLinear_ )
43351     {
43352       computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
43353       return *this;
43354     }
43355 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43356     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const
43357     {
43358       return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
43359     }
43360 
operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43361     operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &()
43362     {
43363       return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
43364     }
43365 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43366     bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const
43367     {
43368       return ( sType == rhs.sType )
43369           && ( pNext == rhs.pNext )
43370           && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
43371           && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
43372     }
43373 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV43374     bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const
43375     {
43376       return !operator==( rhs );
43377     }
43378 
43379   private:
43380     using layout::PhysicalDeviceComputeShaderDerivativesFeaturesNV::sType;
43381   };
43382   static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
43383   static_assert( std::is_standard_layout<PhysicalDeviceComputeShaderDerivativesFeaturesNV>::value, "struct wrapper is not a standard layout!" );
43384 
43385   namespace layout
43386   {
43387     struct PhysicalDeviceConditionalRenderingFeaturesEXT
43388     {
43389     protected:
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConditionalRenderingFeaturesEXT43390       PhysicalDeviceConditionalRenderingFeaturesEXT( vk::Bool32 conditionalRendering_ = 0,
43391                                                      vk::Bool32 inheritedConditionalRendering_ = 0 )
43392         : conditionalRendering( conditionalRendering_ )
43393         , inheritedConditionalRendering( inheritedConditionalRendering_ )
43394       {}
43395 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConditionalRenderingFeaturesEXT43396       PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
43397       {
43398         *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this) = rhs;
43399       }
43400 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConditionalRenderingFeaturesEXT43401       PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
43402       {
43403         *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this) = rhs;
43404         return *this;
43405       }
43406 
43407     public:
43408       vk::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
43409       void* pNext = nullptr;
43410       vk::Bool32 conditionalRendering;
43411       vk::Bool32 inheritedConditionalRendering;
43412     };
43413     static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "layout struct and wrapper have different size!" );
43414   }
43415 
43416   struct PhysicalDeviceConditionalRenderingFeaturesEXT : public layout::PhysicalDeviceConditionalRenderingFeaturesEXT
43417   {
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43418     PhysicalDeviceConditionalRenderingFeaturesEXT( vk::Bool32 conditionalRendering_ = 0,
43419                                                    vk::Bool32 inheritedConditionalRendering_ = 0 )
43420       : layout::PhysicalDeviceConditionalRenderingFeaturesEXT( conditionalRendering_, inheritedConditionalRendering_ )
43421     {}
43422 
PhysicalDeviceConditionalRenderingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43423     PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
43424       : layout::PhysicalDeviceConditionalRenderingFeaturesEXT( rhs )
43425     {}
43426 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43427     PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
43428     {
43429       *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this) = rhs;
43430       return *this;
43431     }
43432 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43433     PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ )
43434     {
43435       pNext = pNext_;
43436       return *this;
43437     }
43438 
setConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43439     PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( vk::Bool32 conditionalRendering_ )
43440     {
43441       conditionalRendering = conditionalRendering_;
43442       return *this;
43443     }
43444 
setInheritedConditionalRenderingVULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43445     PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( vk::Bool32 inheritedConditionalRendering_ )
43446     {
43447       inheritedConditionalRendering = inheritedConditionalRendering_;
43448       return *this;
43449     }
43450 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43451     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const
43452     {
43453       return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
43454     }
43455 
operator VkPhysicalDeviceConditionalRenderingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43456     operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &()
43457     {
43458       return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
43459     }
43460 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43461     bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const
43462     {
43463       return ( sType == rhs.sType )
43464           && ( pNext == rhs.pNext )
43465           && ( conditionalRendering == rhs.conditionalRendering )
43466           && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
43467     }
43468 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT43469     bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const
43470     {
43471       return !operator==( rhs );
43472     }
43473 
43474   private:
43475     using layout::PhysicalDeviceConditionalRenderingFeaturesEXT::sType;
43476   };
43477   static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
43478   static_assert( std::is_standard_layout<PhysicalDeviceConditionalRenderingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
43479 
43480   namespace layout
43481   {
43482     struct PhysicalDeviceConservativeRasterizationPropertiesEXT
43483     {
43484     protected:
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConservativeRasterizationPropertiesEXT43485       PhysicalDeviceConservativeRasterizationPropertiesEXT( float primitiveOverestimationSize_ = 0,
43486                                                             float maxExtraPrimitiveOverestimationSize_ = 0,
43487                                                             float extraPrimitiveOverestimationSizeGranularity_ = 0,
43488                                                             vk::Bool32 primitiveUnderestimation_ = 0,
43489                                                             vk::Bool32 conservativePointAndLineRasterization_ = 0,
43490                                                             vk::Bool32 degenerateTrianglesRasterized_ = 0,
43491                                                             vk::Bool32 degenerateLinesRasterized_ = 0,
43492                                                             vk::Bool32 fullyCoveredFragmentShaderInputVariable_ = 0,
43493                                                             vk::Bool32 conservativeRasterizationPostDepthCoverage_ = 0 )
43494         : primitiveOverestimationSize( primitiveOverestimationSize_ )
43495         , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ )
43496         , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ )
43497         , primitiveUnderestimation( primitiveUnderestimation_ )
43498         , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ )
43499         , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ )
43500         , degenerateLinesRasterized( degenerateLinesRasterized_ )
43501         , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ )
43502         , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
43503       {}
43504 
PhysicalDeviceConservativeRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConservativeRasterizationPropertiesEXT43505       PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs )
43506       {
43507         *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(this) = rhs;
43508       }
43509 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceConservativeRasterizationPropertiesEXT43510       PhysicalDeviceConservativeRasterizationPropertiesEXT& operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs )
43511       {
43512         *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(this) = rhs;
43513         return *this;
43514       }
43515 
43516     public:
43517       vk::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
43518       void* pNext = nullptr;
43519       float primitiveOverestimationSize;
43520       float maxExtraPrimitiveOverestimationSize;
43521       float extraPrimitiveOverestimationSizeGranularity;
43522       vk::Bool32 primitiveUnderestimation;
43523       vk::Bool32 conservativePointAndLineRasterization;
43524       vk::Bool32 degenerateTrianglesRasterized;
43525       vk::Bool32 degenerateLinesRasterized;
43526       vk::Bool32 fullyCoveredFragmentShaderInputVariable;
43527       vk::Bool32 conservativeRasterizationPostDepthCoverage;
43528     };
43529     static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "layout struct and wrapper have different size!" );
43530   }
43531 
43532   struct PhysicalDeviceConservativeRasterizationPropertiesEXT : public layout::PhysicalDeviceConservativeRasterizationPropertiesEXT
43533   {
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT43534     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const
43535     {
43536       return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
43537     }
43538 
operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT43539     operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &()
43540     {
43541       return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
43542     }
43543 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT43544     bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const
43545     {
43546       return ( sType == rhs.sType )
43547           && ( pNext == rhs.pNext )
43548           && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
43549           && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
43550           && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
43551           && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
43552           && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
43553           && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
43554           && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
43555           && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
43556           && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
43557     }
43558 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT43559     bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const
43560     {
43561       return !operator==( rhs );
43562     }
43563 
43564   private:
43565     using layout::PhysicalDeviceConservativeRasterizationPropertiesEXT::sType;
43566   };
43567   static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
43568   static_assert( std::is_standard_layout<PhysicalDeviceConservativeRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
43569 
43570   namespace layout
43571   {
43572     struct PhysicalDeviceCooperativeMatrixFeaturesNV
43573     {
43574     protected:
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixFeaturesNV43575       PhysicalDeviceCooperativeMatrixFeaturesNV( vk::Bool32 cooperativeMatrix_ = 0,
43576                                                  vk::Bool32 cooperativeMatrixRobustBufferAccess_ = 0 )
43577         : cooperativeMatrix( cooperativeMatrix_ )
43578         , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
43579       {}
43580 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixFeaturesNV43581       PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
43582       {
43583         *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(this) = rhs;
43584       }
43585 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixFeaturesNV43586       PhysicalDeviceCooperativeMatrixFeaturesNV& operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
43587       {
43588         *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(this) = rhs;
43589         return *this;
43590       }
43591 
43592     public:
43593       vk::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
43594       void* pNext = nullptr;
43595       vk::Bool32 cooperativeMatrix;
43596       vk::Bool32 cooperativeMatrixRobustBufferAccess;
43597     };
43598     static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "layout struct and wrapper have different size!" );
43599   }
43600 
43601   struct PhysicalDeviceCooperativeMatrixFeaturesNV : public layout::PhysicalDeviceCooperativeMatrixFeaturesNV
43602   {
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43603     PhysicalDeviceCooperativeMatrixFeaturesNV( vk::Bool32 cooperativeMatrix_ = 0,
43604                                                vk::Bool32 cooperativeMatrixRobustBufferAccess_ = 0 )
43605       : layout::PhysicalDeviceCooperativeMatrixFeaturesNV( cooperativeMatrix_, cooperativeMatrixRobustBufferAccess_ )
43606     {}
43607 
PhysicalDeviceCooperativeMatrixFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43608     PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
43609       : layout::PhysicalDeviceCooperativeMatrixFeaturesNV( rhs )
43610     {}
43611 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43612     PhysicalDeviceCooperativeMatrixFeaturesNV& operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
43613     {
43614       *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(this) = rhs;
43615       return *this;
43616     }
43617 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43618     PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ )
43619     {
43620       pNext = pNext_;
43621       return *this;
43622     }
43623 
setCooperativeMatrixVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43624     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( vk::Bool32 cooperativeMatrix_ )
43625     {
43626       cooperativeMatrix = cooperativeMatrix_;
43627       return *this;
43628     }
43629 
setCooperativeMatrixRobustBufferAccessVULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43630     PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( vk::Bool32 cooperativeMatrixRobustBufferAccess_ )
43631     {
43632       cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
43633       return *this;
43634     }
43635 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43636     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const
43637     {
43638       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
43639     }
43640 
operator VkPhysicalDeviceCooperativeMatrixFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43641     operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &()
43642     {
43643       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
43644     }
43645 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43646     bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const
43647     {
43648       return ( sType == rhs.sType )
43649           && ( pNext == rhs.pNext )
43650           && ( cooperativeMatrix == rhs.cooperativeMatrix )
43651           && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
43652     }
43653 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV43654     bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const
43655     {
43656       return !operator==( rhs );
43657     }
43658 
43659   private:
43660     using layout::PhysicalDeviceCooperativeMatrixFeaturesNV::sType;
43661   };
43662   static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
43663   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixFeaturesNV>::value, "struct wrapper is not a standard layout!" );
43664 
43665   namespace layout
43666   {
43667     struct PhysicalDeviceCooperativeMatrixPropertiesNV
43668     {
43669     protected:
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixPropertiesNV43670       PhysicalDeviceCooperativeMatrixPropertiesNV( vk::ShaderStageFlags cooperativeMatrixSupportedStages_ = vk::ShaderStageFlags() )
43671         : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
43672       {}
43673 
PhysicalDeviceCooperativeMatrixPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixPropertiesNV43674       PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs )
43675       {
43676         *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(this) = rhs;
43677       }
43678 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCooperativeMatrixPropertiesNV43679       PhysicalDeviceCooperativeMatrixPropertiesNV& operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs )
43680       {
43681         *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(this) = rhs;
43682         return *this;
43683       }
43684 
43685     public:
43686       vk::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
43687       void* pNext = nullptr;
43688       vk::ShaderStageFlags cooperativeMatrixSupportedStages;
43689     };
43690     static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "layout struct and wrapper have different size!" );
43691   }
43692 
43693   struct PhysicalDeviceCooperativeMatrixPropertiesNV : public layout::PhysicalDeviceCooperativeMatrixPropertiesNV
43694   {
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV43695     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const
43696     {
43697       return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
43698     }
43699 
operator VkPhysicalDeviceCooperativeMatrixPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV43700     operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &()
43701     {
43702       return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
43703     }
43704 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV43705     bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const
43706     {
43707       return ( sType == rhs.sType )
43708           && ( pNext == rhs.pNext )
43709           && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
43710     }
43711 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV43712     bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const
43713     {
43714       return !operator==( rhs );
43715     }
43716 
43717   private:
43718     using layout::PhysicalDeviceCooperativeMatrixPropertiesNV::sType;
43719   };
43720   static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
43721   static_assert( std::is_standard_layout<PhysicalDeviceCooperativeMatrixPropertiesNV>::value, "struct wrapper is not a standard layout!" );
43722 
43723   namespace layout
43724   {
43725     struct PhysicalDeviceCornerSampledImageFeaturesNV
43726     {
43727     protected:
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCornerSampledImageFeaturesNV43728       PhysicalDeviceCornerSampledImageFeaturesNV( vk::Bool32 cornerSampledImage_ = 0 )
43729         : cornerSampledImage( cornerSampledImage_ )
43730       {}
43731 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCornerSampledImageFeaturesNV43732       PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
43733       {
43734         *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this) = rhs;
43735       }
43736 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCornerSampledImageFeaturesNV43737       PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
43738       {
43739         *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this) = rhs;
43740         return *this;
43741       }
43742 
43743     public:
43744       vk::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
43745       void* pNext = nullptr;
43746       vk::Bool32 cornerSampledImage;
43747     };
43748     static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "layout struct and wrapper have different size!" );
43749   }
43750 
43751   struct PhysicalDeviceCornerSampledImageFeaturesNV : public layout::PhysicalDeviceCornerSampledImageFeaturesNV
43752   {
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43753     PhysicalDeviceCornerSampledImageFeaturesNV( vk::Bool32 cornerSampledImage_ = 0 )
43754       : layout::PhysicalDeviceCornerSampledImageFeaturesNV( cornerSampledImage_ )
43755     {}
43756 
PhysicalDeviceCornerSampledImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43757     PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
43758       : layout::PhysicalDeviceCornerSampledImageFeaturesNV( rhs )
43759     {}
43760 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43761     PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
43762     {
43763       *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this) = rhs;
43764       return *this;
43765     }
43766 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43767     PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ )
43768     {
43769       pNext = pNext_;
43770       return *this;
43771     }
43772 
setCornerSampledImageVULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43773     PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( vk::Bool32 cornerSampledImage_ )
43774     {
43775       cornerSampledImage = cornerSampledImage_;
43776       return *this;
43777     }
43778 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43779     operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const
43780     {
43781       return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
43782     }
43783 
operator VkPhysicalDeviceCornerSampledImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43784     operator VkPhysicalDeviceCornerSampledImageFeaturesNV &()
43785     {
43786       return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
43787     }
43788 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43789     bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const
43790     {
43791       return ( sType == rhs.sType )
43792           && ( pNext == rhs.pNext )
43793           && ( cornerSampledImage == rhs.cornerSampledImage );
43794     }
43795 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV43796     bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const
43797     {
43798       return !operator==( rhs );
43799     }
43800 
43801   private:
43802     using layout::PhysicalDeviceCornerSampledImageFeaturesNV::sType;
43803   };
43804   static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
43805   static_assert( std::is_standard_layout<PhysicalDeviceCornerSampledImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
43806 
43807   namespace layout
43808   {
43809     struct PhysicalDeviceCoverageReductionModeFeaturesNV
43810     {
43811     protected:
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoverageReductionModeFeaturesNV43812       PhysicalDeviceCoverageReductionModeFeaturesNV( vk::Bool32 coverageReductionMode_ = 0 )
43813         : coverageReductionMode( coverageReductionMode_ )
43814       {}
43815 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoverageReductionModeFeaturesNV43816       PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
43817       {
43818         *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(this) = rhs;
43819       }
43820 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceCoverageReductionModeFeaturesNV43821       PhysicalDeviceCoverageReductionModeFeaturesNV& operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
43822       {
43823         *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(this) = rhs;
43824         return *this;
43825       }
43826 
43827     public:
43828       vk::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
43829       void* pNext = nullptr;
43830       vk::Bool32 coverageReductionMode;
43831     };
43832     static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "layout struct and wrapper have different size!" );
43833   }
43834 
43835   struct PhysicalDeviceCoverageReductionModeFeaturesNV : public layout::PhysicalDeviceCoverageReductionModeFeaturesNV
43836   {
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43837     PhysicalDeviceCoverageReductionModeFeaturesNV( vk::Bool32 coverageReductionMode_ = 0 )
43838       : layout::PhysicalDeviceCoverageReductionModeFeaturesNV( coverageReductionMode_ )
43839     {}
43840 
PhysicalDeviceCoverageReductionModeFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43841     PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
43842       : layout::PhysicalDeviceCoverageReductionModeFeaturesNV( rhs )
43843     {}
43844 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43845     PhysicalDeviceCoverageReductionModeFeaturesNV& operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
43846     {
43847       *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(this) = rhs;
43848       return *this;
43849     }
43850 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43851     PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ )
43852     {
43853       pNext = pNext_;
43854       return *this;
43855     }
43856 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43857     PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( vk::Bool32 coverageReductionMode_ )
43858     {
43859       coverageReductionMode = coverageReductionMode_;
43860       return *this;
43861     }
43862 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43863     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const
43864     {
43865       return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
43866     }
43867 
operator VkPhysicalDeviceCoverageReductionModeFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43868     operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &()
43869     {
43870       return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
43871     }
43872 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43873     bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const
43874     {
43875       return ( sType == rhs.sType )
43876           && ( pNext == rhs.pNext )
43877           && ( coverageReductionMode == rhs.coverageReductionMode );
43878     }
43879 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV43880     bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const
43881     {
43882       return !operator==( rhs );
43883     }
43884 
43885   private:
43886     using layout::PhysicalDeviceCoverageReductionModeFeaturesNV::sType;
43887   };
43888   static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
43889   static_assert( std::is_standard_layout<PhysicalDeviceCoverageReductionModeFeaturesNV>::value, "struct wrapper is not a standard layout!" );
43890 
43891   namespace layout
43892   {
43893     struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
43894     {
43895     protected:
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43896       PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( vk::Bool32 dedicatedAllocationImageAliasing_ = 0 )
43897         : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
43898       {}
43899 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43900       PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
43901       {
43902         *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(this) = rhs;
43903       }
43904 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43905       PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
43906       {
43907         *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(this) = rhs;
43908         return *this;
43909       }
43910 
43911     public:
43912       vk::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
43913       void* pNext = nullptr;
43914       vk::Bool32 dedicatedAllocationImageAliasing;
43915     };
43916     static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "layout struct and wrapper have different size!" );
43917   }
43918 
43919   struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : public layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
43920   {
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43921     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( vk::Bool32 dedicatedAllocationImageAliasing_ = 0 )
43922       : layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( dedicatedAllocationImageAliasing_ )
43923     {}
43924 
PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43925     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
43926       : layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( rhs )
43927     {}
43928 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43929     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
43930     {
43931       *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(this) = rhs;
43932       return *this;
43933     }
43934 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43935     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ )
43936     {
43937       pNext = pNext_;
43938       return *this;
43939     }
43940 
setDedicatedAllocationImageAliasingVULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43941     PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( vk::Bool32 dedicatedAllocationImageAliasing_ )
43942     {
43943       dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
43944       return *this;
43945     }
43946 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43947     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const
43948     {
43949       return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
43950     }
43951 
operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43952     operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &()
43953     {
43954       return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
43955     }
43956 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43957     bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const
43958     {
43959       return ( sType == rhs.sType )
43960           && ( pNext == rhs.pNext )
43961           && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
43962     }
43963 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV43964     bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const
43965     {
43966       return !operator==( rhs );
43967     }
43968 
43969   private:
43970     using layout::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV::sType;
43971   };
43972   static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
43973   static_assert( std::is_standard_layout<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>::value, "struct wrapper is not a standard layout!" );
43974 
43975   namespace layout
43976   {
43977     struct PhysicalDeviceDepthClipEnableFeaturesEXT
43978     {
43979     protected:
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthClipEnableFeaturesEXT43980       PhysicalDeviceDepthClipEnableFeaturesEXT( vk::Bool32 depthClipEnable_ = 0 )
43981         : depthClipEnable( depthClipEnable_ )
43982       {}
43983 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthClipEnableFeaturesEXT43984       PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
43985       {
43986         *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(this) = rhs;
43987       }
43988 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthClipEnableFeaturesEXT43989       PhysicalDeviceDepthClipEnableFeaturesEXT& operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
43990       {
43991         *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(this) = rhs;
43992         return *this;
43993       }
43994 
43995     public:
43996       vk::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
43997       void* pNext = nullptr;
43998       vk::Bool32 depthClipEnable;
43999     };
44000     static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "layout struct and wrapper have different size!" );
44001   }
44002 
44003   struct PhysicalDeviceDepthClipEnableFeaturesEXT : public layout::PhysicalDeviceDepthClipEnableFeaturesEXT
44004   {
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44005     PhysicalDeviceDepthClipEnableFeaturesEXT( vk::Bool32 depthClipEnable_ = 0 )
44006       : layout::PhysicalDeviceDepthClipEnableFeaturesEXT( depthClipEnable_ )
44007     {}
44008 
PhysicalDeviceDepthClipEnableFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44009     PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
44010       : layout::PhysicalDeviceDepthClipEnableFeaturesEXT( rhs )
44011     {}
44012 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44013     PhysicalDeviceDepthClipEnableFeaturesEXT& operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
44014     {
44015       *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(this) = rhs;
44016       return *this;
44017     }
44018 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44019     PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ )
44020     {
44021       pNext = pNext_;
44022       return *this;
44023     }
44024 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44025     PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( vk::Bool32 depthClipEnable_ )
44026     {
44027       depthClipEnable = depthClipEnable_;
44028       return *this;
44029     }
44030 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44031     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const
44032     {
44033       return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
44034     }
44035 
operator VkPhysicalDeviceDepthClipEnableFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44036     operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &()
44037     {
44038       return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
44039     }
44040 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44041     bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const
44042     {
44043       return ( sType == rhs.sType )
44044           && ( pNext == rhs.pNext )
44045           && ( depthClipEnable == rhs.depthClipEnable );
44046     }
44047 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT44048     bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const
44049     {
44050       return !operator==( rhs );
44051     }
44052 
44053   private:
44054     using layout::PhysicalDeviceDepthClipEnableFeaturesEXT::sType;
44055   };
44056   static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
44057   static_assert( std::is_standard_layout<PhysicalDeviceDepthClipEnableFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
44058 
44059   namespace layout
44060   {
44061     struct PhysicalDeviceDepthStencilResolvePropertiesKHR
44062     {
44063     protected:
PhysicalDeviceDepthStencilResolvePropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthStencilResolvePropertiesKHR44064       PhysicalDeviceDepthStencilResolvePropertiesKHR( vk::ResolveModeFlagsKHR supportedDepthResolveModes_ = vk::ResolveModeFlagsKHR(),
44065                                                       vk::ResolveModeFlagsKHR supportedStencilResolveModes_ = vk::ResolveModeFlagsKHR(),
44066                                                       vk::Bool32 independentResolveNone_ = 0,
44067                                                       vk::Bool32 independentResolve_ = 0 )
44068         : supportedDepthResolveModes( supportedDepthResolveModes_ )
44069         , supportedStencilResolveModes( supportedStencilResolveModes_ )
44070         , independentResolveNone( independentResolveNone_ )
44071         , independentResolve( independentResolve_ )
44072       {}
44073 
PhysicalDeviceDepthStencilResolvePropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthStencilResolvePropertiesKHR44074       PhysicalDeviceDepthStencilResolvePropertiesKHR( VkPhysicalDeviceDepthStencilResolvePropertiesKHR const & rhs )
44075       {
44076         *reinterpret_cast<VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>(this) = rhs;
44077       }
44078 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDepthStencilResolvePropertiesKHR44079       PhysicalDeviceDepthStencilResolvePropertiesKHR& operator=( VkPhysicalDeviceDepthStencilResolvePropertiesKHR const & rhs )
44080       {
44081         *reinterpret_cast<VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>(this) = rhs;
44082         return *this;
44083       }
44084 
44085     public:
44086       vk::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolvePropertiesKHR;
44087       void* pNext = nullptr;
44088       vk::ResolveModeFlagsKHR supportedDepthResolveModes;
44089       vk::ResolveModeFlagsKHR supportedStencilResolveModes;
44090       vk::Bool32 independentResolveNone;
44091       vk::Bool32 independentResolve;
44092     };
44093     static_assert( sizeof( PhysicalDeviceDepthStencilResolvePropertiesKHR ) == sizeof( VkPhysicalDeviceDepthStencilResolvePropertiesKHR ), "layout struct and wrapper have different size!" );
44094   }
44095 
44096   struct PhysicalDeviceDepthStencilResolvePropertiesKHR : public layout::PhysicalDeviceDepthStencilResolvePropertiesKHR
44097   {
operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolvePropertiesKHR44098     operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR const&() const
44099     {
44100       return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>( this );
44101     }
44102 
operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolvePropertiesKHR44103     operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR &()
44104     {
44105       return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>( this );
44106     }
44107 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolvePropertiesKHR44108     bool operator==( PhysicalDeviceDepthStencilResolvePropertiesKHR const& rhs ) const
44109     {
44110       return ( sType == rhs.sType )
44111           && ( pNext == rhs.pNext )
44112           && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
44113           && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
44114           && ( independentResolveNone == rhs.independentResolveNone )
44115           && ( independentResolve == rhs.independentResolve );
44116     }
44117 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolvePropertiesKHR44118     bool operator!=( PhysicalDeviceDepthStencilResolvePropertiesKHR const& rhs ) const
44119     {
44120       return !operator==( rhs );
44121     }
44122 
44123   private:
44124     using layout::PhysicalDeviceDepthStencilResolvePropertiesKHR::sType;
44125   };
44126   static_assert( sizeof( PhysicalDeviceDepthStencilResolvePropertiesKHR ) == sizeof( VkPhysicalDeviceDepthStencilResolvePropertiesKHR ), "struct and wrapper have different size!" );
44127   static_assert( std::is_standard_layout<PhysicalDeviceDepthStencilResolvePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
44128 
44129   namespace layout
44130   {
44131     struct PhysicalDeviceDescriptorIndexingFeaturesEXT
44132     {
44133     protected:
PhysicalDeviceDescriptorIndexingFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingFeaturesEXT44134       PhysicalDeviceDescriptorIndexingFeaturesEXT( vk::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = 0,
44135                                                    vk::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = 0,
44136                                                    vk::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = 0,
44137                                                    vk::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = 0,
44138                                                    vk::Bool32 shaderSampledImageArrayNonUniformIndexing_ = 0,
44139                                                    vk::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = 0,
44140                                                    vk::Bool32 shaderStorageImageArrayNonUniformIndexing_ = 0,
44141                                                    vk::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = 0,
44142                                                    vk::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = 0,
44143                                                    vk::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = 0,
44144                                                    vk::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = 0,
44145                                                    vk::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = 0,
44146                                                    vk::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = 0,
44147                                                    vk::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = 0,
44148                                                    vk::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = 0,
44149                                                    vk::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = 0,
44150                                                    vk::Bool32 descriptorBindingUpdateUnusedWhilePending_ = 0,
44151                                                    vk::Bool32 descriptorBindingPartiallyBound_ = 0,
44152                                                    vk::Bool32 descriptorBindingVariableDescriptorCount_ = 0,
44153                                                    vk::Bool32 runtimeDescriptorArray_ = 0 )
44154         : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
44155         , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
44156         , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
44157         , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
44158         , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
44159         , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
44160         , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
44161         , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
44162         , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
44163         , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
44164         , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
44165         , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
44166         , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
44167         , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
44168         , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
44169         , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
44170         , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
44171         , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
44172         , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
44173         , runtimeDescriptorArray( runtimeDescriptorArray_ )
44174       {}
44175 
PhysicalDeviceDescriptorIndexingFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingFeaturesEXT44176       PhysicalDeviceDescriptorIndexingFeaturesEXT( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
44177       {
44178         *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this) = rhs;
44179       }
44180 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingFeaturesEXT44181       PhysicalDeviceDescriptorIndexingFeaturesEXT& operator=( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
44182       {
44183         *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this) = rhs;
44184         return *this;
44185       }
44186 
44187     public:
44188       vk::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeaturesEXT;
44189       void* pNext = nullptr;
44190       vk::Bool32 shaderInputAttachmentArrayDynamicIndexing;
44191       vk::Bool32 shaderUniformTexelBufferArrayDynamicIndexing;
44192       vk::Bool32 shaderStorageTexelBufferArrayDynamicIndexing;
44193       vk::Bool32 shaderUniformBufferArrayNonUniformIndexing;
44194       vk::Bool32 shaderSampledImageArrayNonUniformIndexing;
44195       vk::Bool32 shaderStorageBufferArrayNonUniformIndexing;
44196       vk::Bool32 shaderStorageImageArrayNonUniformIndexing;
44197       vk::Bool32 shaderInputAttachmentArrayNonUniformIndexing;
44198       vk::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing;
44199       vk::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing;
44200       vk::Bool32 descriptorBindingUniformBufferUpdateAfterBind;
44201       vk::Bool32 descriptorBindingSampledImageUpdateAfterBind;
44202       vk::Bool32 descriptorBindingStorageImageUpdateAfterBind;
44203       vk::Bool32 descriptorBindingStorageBufferUpdateAfterBind;
44204       vk::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
44205       vk::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
44206       vk::Bool32 descriptorBindingUpdateUnusedWhilePending;
44207       vk::Bool32 descriptorBindingPartiallyBound;
44208       vk::Bool32 descriptorBindingVariableDescriptorCount;
44209       vk::Bool32 runtimeDescriptorArray;
44210     };
44211     static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeaturesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeaturesEXT ), "layout struct and wrapper have different size!" );
44212   }
44213 
44214   struct PhysicalDeviceDescriptorIndexingFeaturesEXT : public layout::PhysicalDeviceDescriptorIndexingFeaturesEXT
44215   {
PhysicalDeviceDescriptorIndexingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44216     PhysicalDeviceDescriptorIndexingFeaturesEXT( vk::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = 0,
44217                                                  vk::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = 0,
44218                                                  vk::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = 0,
44219                                                  vk::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = 0,
44220                                                  vk::Bool32 shaderSampledImageArrayNonUniformIndexing_ = 0,
44221                                                  vk::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = 0,
44222                                                  vk::Bool32 shaderStorageImageArrayNonUniformIndexing_ = 0,
44223                                                  vk::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = 0,
44224                                                  vk::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = 0,
44225                                                  vk::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = 0,
44226                                                  vk::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = 0,
44227                                                  vk::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = 0,
44228                                                  vk::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = 0,
44229                                                  vk::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = 0,
44230                                                  vk::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = 0,
44231                                                  vk::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = 0,
44232                                                  vk::Bool32 descriptorBindingUpdateUnusedWhilePending_ = 0,
44233                                                  vk::Bool32 descriptorBindingPartiallyBound_ = 0,
44234                                                  vk::Bool32 descriptorBindingVariableDescriptorCount_ = 0,
44235                                                  vk::Bool32 runtimeDescriptorArray_ = 0 )
44236       : layout::PhysicalDeviceDescriptorIndexingFeaturesEXT( shaderInputAttachmentArrayDynamicIndexing_, shaderUniformTexelBufferArrayDynamicIndexing_, shaderStorageTexelBufferArrayDynamicIndexing_, shaderUniformBufferArrayNonUniformIndexing_, shaderSampledImageArrayNonUniformIndexing_, shaderStorageBufferArrayNonUniformIndexing_, shaderStorageImageArrayNonUniformIndexing_, shaderInputAttachmentArrayNonUniformIndexing_, shaderUniformTexelBufferArrayNonUniformIndexing_, shaderStorageTexelBufferArrayNonUniformIndexing_, descriptorBindingUniformBufferUpdateAfterBind_, descriptorBindingSampledImageUpdateAfterBind_, descriptorBindingStorageImageUpdateAfterBind_, descriptorBindingStorageBufferUpdateAfterBind_, descriptorBindingUniformTexelBufferUpdateAfterBind_, descriptorBindingStorageTexelBufferUpdateAfterBind_, descriptorBindingUpdateUnusedWhilePending_, descriptorBindingPartiallyBound_, descriptorBindingVariableDescriptorCount_, runtimeDescriptorArray_ )
44237     {}
44238 
PhysicalDeviceDescriptorIndexingFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44239     PhysicalDeviceDescriptorIndexingFeaturesEXT( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
44240       : layout::PhysicalDeviceDescriptorIndexingFeaturesEXT( rhs )
44241     {}
44242 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44243     PhysicalDeviceDescriptorIndexingFeaturesEXT& operator=( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
44244     {
44245       *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this) = rhs;
44246       return *this;
44247     }
44248 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44249     PhysicalDeviceDescriptorIndexingFeaturesEXT & setPNext( void* pNext_ )
44250     {
44251       pNext = pNext_;
44252       return *this;
44253     }
44254 
setShaderInputAttachmentArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44255     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderInputAttachmentArrayDynamicIndexing( vk::Bool32 shaderInputAttachmentArrayDynamicIndexing_ )
44256     {
44257       shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
44258       return *this;
44259     }
44260 
setShaderUniformTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44261     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformTexelBufferArrayDynamicIndexing( vk::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ )
44262     {
44263       shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
44264       return *this;
44265     }
44266 
setShaderStorageTexelBufferArrayDynamicIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44267     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageTexelBufferArrayDynamicIndexing( vk::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ )
44268     {
44269       shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
44270       return *this;
44271     }
44272 
setShaderUniformBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44273     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformBufferArrayNonUniformIndexing( vk::Bool32 shaderUniformBufferArrayNonUniformIndexing_ )
44274     {
44275       shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
44276       return *this;
44277     }
44278 
setShaderSampledImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44279     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderSampledImageArrayNonUniformIndexing( vk::Bool32 shaderSampledImageArrayNonUniformIndexing_ )
44280     {
44281       shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
44282       return *this;
44283     }
44284 
setShaderStorageBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44285     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageBufferArrayNonUniformIndexing( vk::Bool32 shaderStorageBufferArrayNonUniformIndexing_ )
44286     {
44287       shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
44288       return *this;
44289     }
44290 
setShaderStorageImageArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44291     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageImageArrayNonUniformIndexing( vk::Bool32 shaderStorageImageArrayNonUniformIndexing_ )
44292     {
44293       shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
44294       return *this;
44295     }
44296 
setShaderInputAttachmentArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44297     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderInputAttachmentArrayNonUniformIndexing( vk::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ )
44298     {
44299       shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
44300       return *this;
44301     }
44302 
setShaderUniformTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44303     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformTexelBufferArrayNonUniformIndexing( vk::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ )
44304     {
44305       shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
44306       return *this;
44307     }
44308 
setShaderStorageTexelBufferArrayNonUniformIndexingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44309     PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageTexelBufferArrayNonUniformIndexing( vk::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ )
44310     {
44311       shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
44312       return *this;
44313     }
44314 
setDescriptorBindingUniformBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44315     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUniformBufferUpdateAfterBind( vk::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ )
44316     {
44317       descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
44318       return *this;
44319     }
44320 
setDescriptorBindingSampledImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44321     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingSampledImageUpdateAfterBind( vk::Bool32 descriptorBindingSampledImageUpdateAfterBind_ )
44322     {
44323       descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
44324       return *this;
44325     }
44326 
setDescriptorBindingStorageImageUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44327     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageImageUpdateAfterBind( vk::Bool32 descriptorBindingStorageImageUpdateAfterBind_ )
44328     {
44329       descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
44330       return *this;
44331     }
44332 
setDescriptorBindingStorageBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44333     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageBufferUpdateAfterBind( vk::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ )
44334     {
44335       descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
44336       return *this;
44337     }
44338 
setDescriptorBindingUniformTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44339     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUniformTexelBufferUpdateAfterBind( vk::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ )
44340     {
44341       descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
44342       return *this;
44343     }
44344 
setDescriptorBindingStorageTexelBufferUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44345     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageTexelBufferUpdateAfterBind( vk::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ )
44346     {
44347       descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
44348       return *this;
44349     }
44350 
setDescriptorBindingUpdateUnusedWhilePendingVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44351     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUpdateUnusedWhilePending( vk::Bool32 descriptorBindingUpdateUnusedWhilePending_ )
44352     {
44353       descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
44354       return *this;
44355     }
44356 
setDescriptorBindingPartiallyBoundVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44357     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingPartiallyBound( vk::Bool32 descriptorBindingPartiallyBound_ )
44358     {
44359       descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
44360       return *this;
44361     }
44362 
setDescriptorBindingVariableDescriptorCountVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44363     PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingVariableDescriptorCount( vk::Bool32 descriptorBindingVariableDescriptorCount_ )
44364     {
44365       descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
44366       return *this;
44367     }
44368 
setRuntimeDescriptorArrayVULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44369     PhysicalDeviceDescriptorIndexingFeaturesEXT & setRuntimeDescriptorArray( vk::Bool32 runtimeDescriptorArray_ )
44370     {
44371       runtimeDescriptorArray = runtimeDescriptorArray_;
44372       return *this;
44373     }
44374 
operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44375     operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT const&() const
44376     {
44377       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>( this );
44378     }
44379 
operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44380     operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT &()
44381     {
44382       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>( this );
44383     }
44384 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44385     bool operator==( PhysicalDeviceDescriptorIndexingFeaturesEXT const& rhs ) const
44386     {
44387       return ( sType == rhs.sType )
44388           && ( pNext == rhs.pNext )
44389           && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
44390           && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
44391           && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
44392           && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
44393           && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
44394           && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
44395           && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
44396           && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
44397           && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
44398           && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
44399           && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
44400           && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
44401           && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
44402           && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
44403           && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
44404           && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
44405           && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
44406           && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
44407           && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
44408           && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
44409     }
44410 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeaturesEXT44411     bool operator!=( PhysicalDeviceDescriptorIndexingFeaturesEXT const& rhs ) const
44412     {
44413       return !operator==( rhs );
44414     }
44415 
44416   private:
44417     using layout::PhysicalDeviceDescriptorIndexingFeaturesEXT::sType;
44418   };
44419   static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeaturesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeaturesEXT ), "struct and wrapper have different size!" );
44420   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
44421 
44422   namespace layout
44423   {
44424     struct PhysicalDeviceDescriptorIndexingPropertiesEXT
44425     {
44426     protected:
PhysicalDeviceDescriptorIndexingPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingPropertiesEXT44427       PhysicalDeviceDescriptorIndexingPropertiesEXT( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = 0,
44428                                                      vk::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = 0,
44429                                                      vk::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = 0,
44430                                                      vk::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = 0,
44431                                                      vk::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = 0,
44432                                                      vk::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = 0,
44433                                                      vk::Bool32 robustBufferAccessUpdateAfterBind_ = 0,
44434                                                      vk::Bool32 quadDivergentImplicitLod_ = 0,
44435                                                      uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = 0,
44436                                                      uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = 0,
44437                                                      uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = 0,
44438                                                      uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = 0,
44439                                                      uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = 0,
44440                                                      uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = 0,
44441                                                      uint32_t maxPerStageUpdateAfterBindResources_ = 0,
44442                                                      uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = 0,
44443                                                      uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = 0,
44444                                                      uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = 0,
44445                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = 0,
44446                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = 0,
44447                                                      uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = 0,
44448                                                      uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = 0,
44449                                                      uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = 0 )
44450         : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
44451         , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
44452         , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
44453         , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
44454         , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
44455         , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
44456         , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
44457         , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
44458         , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
44459         , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
44460         , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
44461         , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
44462         , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
44463         , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
44464         , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
44465         , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
44466         , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
44467         , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
44468         , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
44469         , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
44470         , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
44471         , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
44472         , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
44473       {}
44474 
PhysicalDeviceDescriptorIndexingPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingPropertiesEXT44475       PhysicalDeviceDescriptorIndexingPropertiesEXT( VkPhysicalDeviceDescriptorIndexingPropertiesEXT const & rhs )
44476       {
44477         *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(this) = rhs;
44478       }
44479 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDescriptorIndexingPropertiesEXT44480       PhysicalDeviceDescriptorIndexingPropertiesEXT& operator=( VkPhysicalDeviceDescriptorIndexingPropertiesEXT const & rhs )
44481       {
44482         *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(this) = rhs;
44483         return *this;
44484       }
44485 
44486     public:
44487       vk::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingPropertiesEXT;
44488       void* pNext = nullptr;
44489       uint32_t maxUpdateAfterBindDescriptorsInAllPools;
44490       vk::Bool32 shaderUniformBufferArrayNonUniformIndexingNative;
44491       vk::Bool32 shaderSampledImageArrayNonUniformIndexingNative;
44492       vk::Bool32 shaderStorageBufferArrayNonUniformIndexingNative;
44493       vk::Bool32 shaderStorageImageArrayNonUniformIndexingNative;
44494       vk::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative;
44495       vk::Bool32 robustBufferAccessUpdateAfterBind;
44496       vk::Bool32 quadDivergentImplicitLod;
44497       uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
44498       uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
44499       uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
44500       uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
44501       uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
44502       uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
44503       uint32_t maxPerStageUpdateAfterBindResources;
44504       uint32_t maxDescriptorSetUpdateAfterBindSamplers;
44505       uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
44506       uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
44507       uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
44508       uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
44509       uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
44510       uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
44511       uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
44512     };
44513     static_assert( sizeof( PhysicalDeviceDescriptorIndexingPropertiesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingPropertiesEXT ), "layout struct and wrapper have different size!" );
44514   }
44515 
44516   struct PhysicalDeviceDescriptorIndexingPropertiesEXT : public layout::PhysicalDeviceDescriptorIndexingPropertiesEXT
44517   {
operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingPropertiesEXT44518     operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT const&() const
44519     {
44520       return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>( this );
44521     }
44522 
operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingPropertiesEXT44523     operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT &()
44524     {
44525       return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>( this );
44526     }
44527 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingPropertiesEXT44528     bool operator==( PhysicalDeviceDescriptorIndexingPropertiesEXT const& rhs ) const
44529     {
44530       return ( sType == rhs.sType )
44531           && ( pNext == rhs.pNext )
44532           && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
44533           && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
44534           && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
44535           && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
44536           && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
44537           && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
44538           && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
44539           && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
44540           && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
44541           && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
44542           && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
44543           && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
44544           && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
44545           && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
44546           && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
44547           && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
44548           && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
44549           && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
44550           && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
44551           && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
44552           && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
44553           && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
44554           && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
44555     }
44556 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingPropertiesEXT44557     bool operator!=( PhysicalDeviceDescriptorIndexingPropertiesEXT const& rhs ) const
44558     {
44559       return !operator==( rhs );
44560     }
44561 
44562   private:
44563     using layout::PhysicalDeviceDescriptorIndexingPropertiesEXT::sType;
44564   };
44565   static_assert( sizeof( PhysicalDeviceDescriptorIndexingPropertiesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingPropertiesEXT ), "struct and wrapper have different size!" );
44566   static_assert( std::is_standard_layout<PhysicalDeviceDescriptorIndexingPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
44567 
44568   namespace layout
44569   {
44570     struct PhysicalDeviceDiscardRectanglePropertiesEXT
44571     {
44572     protected:
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDiscardRectanglePropertiesEXT44573       PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = 0 )
44574         : maxDiscardRectangles( maxDiscardRectangles_ )
44575       {}
44576 
PhysicalDeviceDiscardRectanglePropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDiscardRectanglePropertiesEXT44577       PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs )
44578       {
44579         *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(this) = rhs;
44580       }
44581 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDiscardRectanglePropertiesEXT44582       PhysicalDeviceDiscardRectanglePropertiesEXT& operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs )
44583       {
44584         *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(this) = rhs;
44585         return *this;
44586       }
44587 
44588     public:
44589       vk::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
44590       void* pNext = nullptr;
44591       uint32_t maxDiscardRectangles;
44592     };
44593     static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "layout struct and wrapper have different size!" );
44594   }
44595 
44596   struct PhysicalDeviceDiscardRectanglePropertiesEXT : public layout::PhysicalDeviceDiscardRectanglePropertiesEXT
44597   {
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT44598     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const
44599     {
44600       return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
44601     }
44602 
operator VkPhysicalDeviceDiscardRectanglePropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT44603     operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &()
44604     {
44605       return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
44606     }
44607 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT44608     bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const
44609     {
44610       return ( sType == rhs.sType )
44611           && ( pNext == rhs.pNext )
44612           && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
44613     }
44614 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT44615     bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const
44616     {
44617       return !operator==( rhs );
44618     }
44619 
44620   private:
44621     using layout::PhysicalDeviceDiscardRectanglePropertiesEXT::sType;
44622   };
44623   static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
44624   static_assert( std::is_standard_layout<PhysicalDeviceDiscardRectanglePropertiesEXT>::value, "struct wrapper is not a standard layout!" );
44625 
44626   namespace layout
44627   {
44628     struct PhysicalDeviceDriverPropertiesKHR
44629     {
44630     protected:
PhysicalDeviceDriverPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDriverPropertiesKHR44631       PhysicalDeviceDriverPropertiesKHR( vk::DriverIdKHR driverID_ = vk::DriverIdKHR::eAmdProprietary,
44632                                          std::array<char,VK_MAX_DRIVER_NAME_SIZE_KHR> const& driverName_ = { { 0 } },
44633                                          std::array<char,VK_MAX_DRIVER_INFO_SIZE_KHR> const& driverInfo_ = { { 0 } },
44634                                          vk::ConformanceVersionKHR conformanceVersion_ = vk::ConformanceVersionKHR() )
44635         : driverID( driverID_ )
44636         , conformanceVersion( conformanceVersion_ )
44637       {
44638         memcpy( &driverName, driverName_.data(), VK_MAX_DRIVER_NAME_SIZE_KHR * sizeof( char ) );
44639         memcpy( &driverInfo, driverInfo_.data(), VK_MAX_DRIVER_INFO_SIZE_KHR * sizeof( char ) );
44640 
44641       }
44642 
PhysicalDeviceDriverPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDriverPropertiesKHR44643       PhysicalDeviceDriverPropertiesKHR( VkPhysicalDeviceDriverPropertiesKHR const & rhs )
44644       {
44645         *reinterpret_cast<VkPhysicalDeviceDriverPropertiesKHR*>(this) = rhs;
44646       }
44647 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceDriverPropertiesKHR44648       PhysicalDeviceDriverPropertiesKHR& operator=( VkPhysicalDeviceDriverPropertiesKHR const & rhs )
44649       {
44650         *reinterpret_cast<VkPhysicalDeviceDriverPropertiesKHR*>(this) = rhs;
44651         return *this;
44652       }
44653 
44654     public:
44655       vk::StructureType sType = StructureType::ePhysicalDeviceDriverPropertiesKHR;
44656       void* pNext = nullptr;
44657       vk::DriverIdKHR driverID;
44658       char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];
44659       char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];
44660       vk::ConformanceVersionKHR conformanceVersion;
44661     };
44662     static_assert( sizeof( PhysicalDeviceDriverPropertiesKHR ) == sizeof( VkPhysicalDeviceDriverPropertiesKHR ), "layout struct and wrapper have different size!" );
44663   }
44664 
44665   struct PhysicalDeviceDriverPropertiesKHR : public layout::PhysicalDeviceDriverPropertiesKHR
44666   {
operator VkPhysicalDeviceDriverPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverPropertiesKHR44667     operator VkPhysicalDeviceDriverPropertiesKHR const&() const
44668     {
44669       return *reinterpret_cast<const VkPhysicalDeviceDriverPropertiesKHR*>( this );
44670     }
44671 
operator VkPhysicalDeviceDriverPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverPropertiesKHR44672     operator VkPhysicalDeviceDriverPropertiesKHR &()
44673     {
44674       return *reinterpret_cast<VkPhysicalDeviceDriverPropertiesKHR*>( this );
44675     }
44676 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverPropertiesKHR44677     bool operator==( PhysicalDeviceDriverPropertiesKHR const& rhs ) const
44678     {
44679       return ( sType == rhs.sType )
44680           && ( pNext == rhs.pNext )
44681           && ( driverID == rhs.driverID )
44682           && ( memcmp( driverName, rhs.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR * sizeof( char ) ) == 0 )
44683           && ( memcmp( driverInfo, rhs.driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR * sizeof( char ) ) == 0 )
44684           && ( conformanceVersion == rhs.conformanceVersion );
44685     }
44686 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverPropertiesKHR44687     bool operator!=( PhysicalDeviceDriverPropertiesKHR const& rhs ) const
44688     {
44689       return !operator==( rhs );
44690     }
44691 
44692   private:
44693     using layout::PhysicalDeviceDriverPropertiesKHR::sType;
44694   };
44695   static_assert( sizeof( PhysicalDeviceDriverPropertiesKHR ) == sizeof( VkPhysicalDeviceDriverPropertiesKHR ), "struct and wrapper have different size!" );
44696   static_assert( std::is_standard_layout<PhysicalDeviceDriverPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
44697 
44698   namespace layout
44699   {
44700     struct PhysicalDeviceExclusiveScissorFeaturesNV
44701     {
44702     protected:
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExclusiveScissorFeaturesNV44703       PhysicalDeviceExclusiveScissorFeaturesNV( vk::Bool32 exclusiveScissor_ = 0 )
44704         : exclusiveScissor( exclusiveScissor_ )
44705       {}
44706 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExclusiveScissorFeaturesNV44707       PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
44708       {
44709         *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this) = rhs;
44710       }
44711 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExclusiveScissorFeaturesNV44712       PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
44713       {
44714         *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this) = rhs;
44715         return *this;
44716       }
44717 
44718     public:
44719       vk::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
44720       void* pNext = nullptr;
44721       vk::Bool32 exclusiveScissor;
44722     };
44723     static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "layout struct and wrapper have different size!" );
44724   }
44725 
44726   struct PhysicalDeviceExclusiveScissorFeaturesNV : public layout::PhysicalDeviceExclusiveScissorFeaturesNV
44727   {
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44728     PhysicalDeviceExclusiveScissorFeaturesNV( vk::Bool32 exclusiveScissor_ = 0 )
44729       : layout::PhysicalDeviceExclusiveScissorFeaturesNV( exclusiveScissor_ )
44730     {}
44731 
PhysicalDeviceExclusiveScissorFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44732     PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
44733       : layout::PhysicalDeviceExclusiveScissorFeaturesNV( rhs )
44734     {}
44735 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44736     PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
44737     {
44738       *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this) = rhs;
44739       return *this;
44740     }
44741 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44742     PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ )
44743     {
44744       pNext = pNext_;
44745       return *this;
44746     }
44747 
setExclusiveScissorVULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44748     PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( vk::Bool32 exclusiveScissor_ )
44749     {
44750       exclusiveScissor = exclusiveScissor_;
44751       return *this;
44752     }
44753 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44754     operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const
44755     {
44756       return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
44757     }
44758 
operator VkPhysicalDeviceExclusiveScissorFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44759     operator VkPhysicalDeviceExclusiveScissorFeaturesNV &()
44760     {
44761       return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
44762     }
44763 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44764     bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const
44765     {
44766       return ( sType == rhs.sType )
44767           && ( pNext == rhs.pNext )
44768           && ( exclusiveScissor == rhs.exclusiveScissor );
44769     }
44770 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV44771     bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const
44772     {
44773       return !operator==( rhs );
44774     }
44775 
44776   private:
44777     using layout::PhysicalDeviceExclusiveScissorFeaturesNV::sType;
44778   };
44779   static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
44780   static_assert( std::is_standard_layout<PhysicalDeviceExclusiveScissorFeaturesNV>::value, "struct wrapper is not a standard layout!" );
44781 
44782   namespace layout
44783   {
44784     struct PhysicalDeviceExternalBufferInfo
44785     {
44786     protected:
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalBufferInfo44787       PhysicalDeviceExternalBufferInfo( vk::BufferCreateFlags flags_ = vk::BufferCreateFlags(),
44788                                         vk::BufferUsageFlags usage_ = vk::BufferUsageFlags(),
44789                                         vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
44790         : flags( flags_ )
44791         , usage( usage_ )
44792         , handleType( handleType_ )
44793       {}
44794 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalBufferInfo44795       PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs )
44796       {
44797         *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this) = rhs;
44798       }
44799 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalBufferInfo44800       PhysicalDeviceExternalBufferInfo& operator=( VkPhysicalDeviceExternalBufferInfo const & rhs )
44801       {
44802         *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this) = rhs;
44803         return *this;
44804       }
44805 
44806     public:
44807       vk::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
44808       const void* pNext = nullptr;
44809       vk::BufferCreateFlags flags;
44810       vk::BufferUsageFlags usage;
44811       vk::ExternalMemoryHandleTypeFlagBits handleType;
44812     };
44813     static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "layout struct and wrapper have different size!" );
44814   }
44815 
44816   struct PhysicalDeviceExternalBufferInfo : public layout::PhysicalDeviceExternalBufferInfo
44817   {
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44818     PhysicalDeviceExternalBufferInfo( vk::BufferCreateFlags flags_ = vk::BufferCreateFlags(),
44819                                       vk::BufferUsageFlags usage_ = vk::BufferUsageFlags(),
44820                                       vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
44821       : layout::PhysicalDeviceExternalBufferInfo( flags_, usage_, handleType_ )
44822     {}
44823 
PhysicalDeviceExternalBufferInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44824     PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs )
44825       : layout::PhysicalDeviceExternalBufferInfo( rhs )
44826     {}
44827 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44828     PhysicalDeviceExternalBufferInfo& operator=( VkPhysicalDeviceExternalBufferInfo const & rhs )
44829     {
44830       *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this) = rhs;
44831       return *this;
44832     }
44833 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44834     PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ )
44835     {
44836       pNext = pNext_;
44837       return *this;
44838     }
44839 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44840     PhysicalDeviceExternalBufferInfo & setFlags( vk::BufferCreateFlags flags_ )
44841     {
44842       flags = flags_;
44843       return *this;
44844     }
44845 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44846     PhysicalDeviceExternalBufferInfo & setUsage( vk::BufferUsageFlags usage_ )
44847     {
44848       usage = usage_;
44849       return *this;
44850     }
44851 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44852     PhysicalDeviceExternalBufferInfo & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
44853     {
44854       handleType = handleType_;
44855       return *this;
44856     }
44857 
operator VkPhysicalDeviceExternalBufferInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44858     operator VkPhysicalDeviceExternalBufferInfo const&() const
44859     {
44860       return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
44861     }
44862 
operator VkPhysicalDeviceExternalBufferInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44863     operator VkPhysicalDeviceExternalBufferInfo &()
44864     {
44865       return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
44866     }
44867 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44868     bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const
44869     {
44870       return ( sType == rhs.sType )
44871           && ( pNext == rhs.pNext )
44872           && ( flags == rhs.flags )
44873           && ( usage == rhs.usage )
44874           && ( handleType == rhs.handleType );
44875     }
44876 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo44877     bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const
44878     {
44879       return !operator==( rhs );
44880     }
44881 
44882   private:
44883     using layout::PhysicalDeviceExternalBufferInfo::sType;
44884   };
44885   static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
44886   static_assert( std::is_standard_layout<PhysicalDeviceExternalBufferInfo>::value, "struct wrapper is not a standard layout!" );
44887 
44888   namespace layout
44889   {
44890     struct PhysicalDeviceExternalFenceInfo
44891     {
44892     protected:
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalFenceInfo44893       PhysicalDeviceExternalFenceInfo( vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
44894         : handleType( handleType_ )
44895       {}
44896 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalFenceInfo44897       PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs )
44898       {
44899         *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this) = rhs;
44900       }
44901 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalFenceInfo44902       PhysicalDeviceExternalFenceInfo& operator=( VkPhysicalDeviceExternalFenceInfo const & rhs )
44903       {
44904         *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this) = rhs;
44905         return *this;
44906       }
44907 
44908     public:
44909       vk::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
44910       const void* pNext = nullptr;
44911       vk::ExternalFenceHandleTypeFlagBits handleType;
44912     };
44913     static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "layout struct and wrapper have different size!" );
44914   }
44915 
44916   struct PhysicalDeviceExternalFenceInfo : public layout::PhysicalDeviceExternalFenceInfo
44917   {
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44918     PhysicalDeviceExternalFenceInfo( vk::ExternalFenceHandleTypeFlagBits handleType_ = vk::ExternalFenceHandleTypeFlagBits::eOpaqueFd )
44919       : layout::PhysicalDeviceExternalFenceInfo( handleType_ )
44920     {}
44921 
PhysicalDeviceExternalFenceInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44922     PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs )
44923       : layout::PhysicalDeviceExternalFenceInfo( rhs )
44924     {}
44925 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44926     PhysicalDeviceExternalFenceInfo& operator=( VkPhysicalDeviceExternalFenceInfo const & rhs )
44927     {
44928       *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this) = rhs;
44929       return *this;
44930     }
44931 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44932     PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ )
44933     {
44934       pNext = pNext_;
44935       return *this;
44936     }
44937 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44938     PhysicalDeviceExternalFenceInfo & setHandleType( vk::ExternalFenceHandleTypeFlagBits handleType_ )
44939     {
44940       handleType = handleType_;
44941       return *this;
44942     }
44943 
operator VkPhysicalDeviceExternalFenceInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44944     operator VkPhysicalDeviceExternalFenceInfo const&() const
44945     {
44946       return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
44947     }
44948 
operator VkPhysicalDeviceExternalFenceInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44949     operator VkPhysicalDeviceExternalFenceInfo &()
44950     {
44951       return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
44952     }
44953 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44954     bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const
44955     {
44956       return ( sType == rhs.sType )
44957           && ( pNext == rhs.pNext )
44958           && ( handleType == rhs.handleType );
44959     }
44960 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo44961     bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const
44962     {
44963       return !operator==( rhs );
44964     }
44965 
44966   private:
44967     using layout::PhysicalDeviceExternalFenceInfo::sType;
44968   };
44969   static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
44970   static_assert( std::is_standard_layout<PhysicalDeviceExternalFenceInfo>::value, "struct wrapper is not a standard layout!" );
44971 
44972   namespace layout
44973   {
44974     struct PhysicalDeviceExternalImageFormatInfo
44975     {
44976     protected:
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalImageFormatInfo44977       PhysicalDeviceExternalImageFormatInfo( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
44978         : handleType( handleType_ )
44979       {}
44980 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalImageFormatInfo44981       PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
44982       {
44983         *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this) = rhs;
44984       }
44985 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalImageFormatInfo44986       PhysicalDeviceExternalImageFormatInfo& operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
44987       {
44988         *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this) = rhs;
44989         return *this;
44990       }
44991 
44992     public:
44993       vk::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
44994       const void* pNext = nullptr;
44995       vk::ExternalMemoryHandleTypeFlagBits handleType;
44996     };
44997     static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "layout struct and wrapper have different size!" );
44998   }
44999 
45000   struct PhysicalDeviceExternalImageFormatInfo : public layout::PhysicalDeviceExternalImageFormatInfo
45001   {
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45002     PhysicalDeviceExternalImageFormatInfo( vk::ExternalMemoryHandleTypeFlagBits handleType_ = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
45003       : layout::PhysicalDeviceExternalImageFormatInfo( handleType_ )
45004     {}
45005 
PhysicalDeviceExternalImageFormatInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45006     PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
45007       : layout::PhysicalDeviceExternalImageFormatInfo( rhs )
45008     {}
45009 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45010     PhysicalDeviceExternalImageFormatInfo& operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
45011     {
45012       *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this) = rhs;
45013       return *this;
45014     }
45015 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45016     PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ )
45017     {
45018       pNext = pNext_;
45019       return *this;
45020     }
45021 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45022     PhysicalDeviceExternalImageFormatInfo & setHandleType( vk::ExternalMemoryHandleTypeFlagBits handleType_ )
45023     {
45024       handleType = handleType_;
45025       return *this;
45026     }
45027 
operator VkPhysicalDeviceExternalImageFormatInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45028     operator VkPhysicalDeviceExternalImageFormatInfo const&() const
45029     {
45030       return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
45031     }
45032 
operator VkPhysicalDeviceExternalImageFormatInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45033     operator VkPhysicalDeviceExternalImageFormatInfo &()
45034     {
45035       return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
45036     }
45037 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45038     bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const
45039     {
45040       return ( sType == rhs.sType )
45041           && ( pNext == rhs.pNext )
45042           && ( handleType == rhs.handleType );
45043     }
45044 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo45045     bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const
45046     {
45047       return !operator==( rhs );
45048     }
45049 
45050   private:
45051     using layout::PhysicalDeviceExternalImageFormatInfo::sType;
45052   };
45053   static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
45054   static_assert( std::is_standard_layout<PhysicalDeviceExternalImageFormatInfo>::value, "struct wrapper is not a standard layout!" );
45055 
45056   namespace layout
45057   {
45058     struct PhysicalDeviceExternalMemoryHostPropertiesEXT
45059     {
45060     protected:
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalMemoryHostPropertiesEXT45061       PhysicalDeviceExternalMemoryHostPropertiesEXT( vk::DeviceSize minImportedHostPointerAlignment_ = 0 )
45062         : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
45063       {}
45064 
PhysicalDeviceExternalMemoryHostPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalMemoryHostPropertiesEXT45065       PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs )
45066       {
45067         *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(this) = rhs;
45068       }
45069 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalMemoryHostPropertiesEXT45070       PhysicalDeviceExternalMemoryHostPropertiesEXT& operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs )
45071       {
45072         *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(this) = rhs;
45073         return *this;
45074       }
45075 
45076     public:
45077       vk::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
45078       void* pNext = nullptr;
45079       vk::DeviceSize minImportedHostPointerAlignment;
45080     };
45081     static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "layout struct and wrapper have different size!" );
45082   }
45083 
45084   struct PhysicalDeviceExternalMemoryHostPropertiesEXT : public layout::PhysicalDeviceExternalMemoryHostPropertiesEXT
45085   {
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT45086     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const
45087     {
45088       return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
45089     }
45090 
operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT45091     operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &()
45092     {
45093       return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
45094     }
45095 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT45096     bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const
45097     {
45098       return ( sType == rhs.sType )
45099           && ( pNext == rhs.pNext )
45100           && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
45101     }
45102 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT45103     bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const
45104     {
45105       return !operator==( rhs );
45106     }
45107 
45108   private:
45109     using layout::PhysicalDeviceExternalMemoryHostPropertiesEXT::sType;
45110   };
45111   static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
45112   static_assert( std::is_standard_layout<PhysicalDeviceExternalMemoryHostPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45113 
45114   namespace layout
45115   {
45116     struct PhysicalDeviceExternalSemaphoreInfo
45117     {
45118     protected:
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalSemaphoreInfo45119       PhysicalDeviceExternalSemaphoreInfo( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
45120         : handleType( handleType_ )
45121       {}
45122 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalSemaphoreInfo45123       PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
45124       {
45125         *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this) = rhs;
45126       }
45127 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceExternalSemaphoreInfo45128       PhysicalDeviceExternalSemaphoreInfo& operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
45129       {
45130         *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this) = rhs;
45131         return *this;
45132       }
45133 
45134     public:
45135       vk::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
45136       const void* pNext = nullptr;
45137       vk::ExternalSemaphoreHandleTypeFlagBits handleType;
45138     };
45139     static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "layout struct and wrapper have different size!" );
45140   }
45141 
45142   struct PhysicalDeviceExternalSemaphoreInfo : public layout::PhysicalDeviceExternalSemaphoreInfo
45143   {
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45144     PhysicalDeviceExternalSemaphoreInfo( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
45145       : layout::PhysicalDeviceExternalSemaphoreInfo( handleType_ )
45146     {}
45147 
PhysicalDeviceExternalSemaphoreInfoVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45148     PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
45149       : layout::PhysicalDeviceExternalSemaphoreInfo( rhs )
45150     {}
45151 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45152     PhysicalDeviceExternalSemaphoreInfo& operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
45153     {
45154       *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this) = rhs;
45155       return *this;
45156     }
45157 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45158     PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ )
45159     {
45160       pNext = pNext_;
45161       return *this;
45162     }
45163 
setHandleTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45164     PhysicalDeviceExternalSemaphoreInfo & setHandleType( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ )
45165     {
45166       handleType = handleType_;
45167       return *this;
45168     }
45169 
operator VkPhysicalDeviceExternalSemaphoreInfo const&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45170     operator VkPhysicalDeviceExternalSemaphoreInfo const&() const
45171     {
45172       return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
45173     }
45174 
operator VkPhysicalDeviceExternalSemaphoreInfo&VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45175     operator VkPhysicalDeviceExternalSemaphoreInfo &()
45176     {
45177       return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
45178     }
45179 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45180     bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const
45181     {
45182       return ( sType == rhs.sType )
45183           && ( pNext == rhs.pNext )
45184           && ( handleType == rhs.handleType );
45185     }
45186 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo45187     bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const
45188     {
45189       return !operator==( rhs );
45190     }
45191 
45192   private:
45193     using layout::PhysicalDeviceExternalSemaphoreInfo::sType;
45194   };
45195   static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
45196   static_assert( std::is_standard_layout<PhysicalDeviceExternalSemaphoreInfo>::value, "struct wrapper is not a standard layout!" );
45197 
45198   namespace layout
45199   {
45200     struct PhysicalDeviceFeatures2
45201     {
45202     protected:
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFeatures245203       PhysicalDeviceFeatures2( vk::PhysicalDeviceFeatures features_ = vk::PhysicalDeviceFeatures() )
45204         : features( features_ )
45205       {}
45206 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFeatures245207       PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs )
45208       {
45209         *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this) = rhs;
45210       }
45211 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFeatures245212       PhysicalDeviceFeatures2& operator=( VkPhysicalDeviceFeatures2 const & rhs )
45213       {
45214         *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this) = rhs;
45215         return *this;
45216       }
45217 
45218     public:
45219       vk::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
45220       void* pNext = nullptr;
45221       vk::PhysicalDeviceFeatures features;
45222     };
45223     static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "layout struct and wrapper have different size!" );
45224   }
45225 
45226   struct PhysicalDeviceFeatures2 : public layout::PhysicalDeviceFeatures2
45227   {
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245228     PhysicalDeviceFeatures2( vk::PhysicalDeviceFeatures features_ = vk::PhysicalDeviceFeatures() )
45229       : layout::PhysicalDeviceFeatures2( features_ )
45230     {}
45231 
PhysicalDeviceFeatures2VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245232     PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs )
45233       : layout::PhysicalDeviceFeatures2( rhs )
45234     {}
45235 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245236     PhysicalDeviceFeatures2& operator=( VkPhysicalDeviceFeatures2 const & rhs )
45237     {
45238       *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this) = rhs;
45239       return *this;
45240     }
45241 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245242     PhysicalDeviceFeatures2 & setPNext( void* pNext_ )
45243     {
45244       pNext = pNext_;
45245       return *this;
45246     }
45247 
setFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245248     PhysicalDeviceFeatures2 & setFeatures( vk::PhysicalDeviceFeatures features_ )
45249     {
45250       features = features_;
45251       return *this;
45252     }
45253 
operator VkPhysicalDeviceFeatures2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245254     operator VkPhysicalDeviceFeatures2 const&() const
45255     {
45256       return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
45257     }
45258 
operator VkPhysicalDeviceFeatures2&VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245259     operator VkPhysicalDeviceFeatures2 &()
45260     {
45261       return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
45262     }
45263 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245264     bool operator==( PhysicalDeviceFeatures2 const& rhs ) const
45265     {
45266       return ( sType == rhs.sType )
45267           && ( pNext == rhs.pNext )
45268           && ( features == rhs.features );
45269     }
45270 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures245271     bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const
45272     {
45273       return !operator==( rhs );
45274     }
45275 
45276   private:
45277     using layout::PhysicalDeviceFeatures2::sType;
45278   };
45279   static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
45280   static_assert( std::is_standard_layout<PhysicalDeviceFeatures2>::value, "struct wrapper is not a standard layout!" );
45281 
45282   namespace layout
45283   {
45284     struct PhysicalDeviceFloatControlsPropertiesKHR
45285     {
45286     protected:
PhysicalDeviceFloatControlsPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFloatControlsPropertiesKHR45287       PhysicalDeviceFloatControlsPropertiesKHR( vk::ShaderFloatControlsIndependenceKHR denormBehaviorIndependence_ = vk::ShaderFloatControlsIndependenceKHR::e32BitOnly,
45288                                                 vk::ShaderFloatControlsIndependenceKHR roundingModeIndependence_ = vk::ShaderFloatControlsIndependenceKHR::e32BitOnly,
45289                                                 vk::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = 0,
45290                                                 vk::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = 0,
45291                                                 vk::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = 0,
45292                                                 vk::Bool32 shaderDenormPreserveFloat16_ = 0,
45293                                                 vk::Bool32 shaderDenormPreserveFloat32_ = 0,
45294                                                 vk::Bool32 shaderDenormPreserveFloat64_ = 0,
45295                                                 vk::Bool32 shaderDenormFlushToZeroFloat16_ = 0,
45296                                                 vk::Bool32 shaderDenormFlushToZeroFloat32_ = 0,
45297                                                 vk::Bool32 shaderDenormFlushToZeroFloat64_ = 0,
45298                                                 vk::Bool32 shaderRoundingModeRTEFloat16_ = 0,
45299                                                 vk::Bool32 shaderRoundingModeRTEFloat32_ = 0,
45300                                                 vk::Bool32 shaderRoundingModeRTEFloat64_ = 0,
45301                                                 vk::Bool32 shaderRoundingModeRTZFloat16_ = 0,
45302                                                 vk::Bool32 shaderRoundingModeRTZFloat32_ = 0,
45303                                                 vk::Bool32 shaderRoundingModeRTZFloat64_ = 0 )
45304         : denormBehaviorIndependence( denormBehaviorIndependence_ )
45305         , roundingModeIndependence( roundingModeIndependence_ )
45306         , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
45307         , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
45308         , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
45309         , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
45310         , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
45311         , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
45312         , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
45313         , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
45314         , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
45315         , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
45316         , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
45317         , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
45318         , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
45319         , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
45320         , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
45321       {}
45322 
PhysicalDeviceFloatControlsPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFloatControlsPropertiesKHR45323       PhysicalDeviceFloatControlsPropertiesKHR( VkPhysicalDeviceFloatControlsPropertiesKHR const & rhs )
45324       {
45325         *reinterpret_cast<VkPhysicalDeviceFloatControlsPropertiesKHR*>(this) = rhs;
45326       }
45327 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFloatControlsPropertiesKHR45328       PhysicalDeviceFloatControlsPropertiesKHR& operator=( VkPhysicalDeviceFloatControlsPropertiesKHR const & rhs )
45329       {
45330         *reinterpret_cast<VkPhysicalDeviceFloatControlsPropertiesKHR*>(this) = rhs;
45331         return *this;
45332       }
45333 
45334     public:
45335       vk::StructureType sType = StructureType::ePhysicalDeviceFloatControlsPropertiesKHR;
45336       void* pNext = nullptr;
45337       vk::ShaderFloatControlsIndependenceKHR denormBehaviorIndependence;
45338       vk::ShaderFloatControlsIndependenceKHR roundingModeIndependence;
45339       vk::Bool32 shaderSignedZeroInfNanPreserveFloat16;
45340       vk::Bool32 shaderSignedZeroInfNanPreserveFloat32;
45341       vk::Bool32 shaderSignedZeroInfNanPreserveFloat64;
45342       vk::Bool32 shaderDenormPreserveFloat16;
45343       vk::Bool32 shaderDenormPreserveFloat32;
45344       vk::Bool32 shaderDenormPreserveFloat64;
45345       vk::Bool32 shaderDenormFlushToZeroFloat16;
45346       vk::Bool32 shaderDenormFlushToZeroFloat32;
45347       vk::Bool32 shaderDenormFlushToZeroFloat64;
45348       vk::Bool32 shaderRoundingModeRTEFloat16;
45349       vk::Bool32 shaderRoundingModeRTEFloat32;
45350       vk::Bool32 shaderRoundingModeRTEFloat64;
45351       vk::Bool32 shaderRoundingModeRTZFloat16;
45352       vk::Bool32 shaderRoundingModeRTZFloat32;
45353       vk::Bool32 shaderRoundingModeRTZFloat64;
45354     };
45355     static_assert( sizeof( PhysicalDeviceFloatControlsPropertiesKHR ) == sizeof( VkPhysicalDeviceFloatControlsPropertiesKHR ), "layout struct and wrapper have different size!" );
45356   }
45357 
45358   struct PhysicalDeviceFloatControlsPropertiesKHR : public layout::PhysicalDeviceFloatControlsPropertiesKHR
45359   {
operator VkPhysicalDeviceFloatControlsPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsPropertiesKHR45360     operator VkPhysicalDeviceFloatControlsPropertiesKHR const&() const
45361     {
45362       return *reinterpret_cast<const VkPhysicalDeviceFloatControlsPropertiesKHR*>( this );
45363     }
45364 
operator VkPhysicalDeviceFloatControlsPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsPropertiesKHR45365     operator VkPhysicalDeviceFloatControlsPropertiesKHR &()
45366     {
45367       return *reinterpret_cast<VkPhysicalDeviceFloatControlsPropertiesKHR*>( this );
45368     }
45369 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsPropertiesKHR45370     bool operator==( PhysicalDeviceFloatControlsPropertiesKHR const& rhs ) const
45371     {
45372       return ( sType == rhs.sType )
45373           && ( pNext == rhs.pNext )
45374           && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence )
45375           && ( roundingModeIndependence == rhs.roundingModeIndependence )
45376           && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
45377           && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
45378           && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
45379           && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
45380           && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
45381           && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
45382           && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
45383           && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
45384           && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
45385           && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
45386           && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
45387           && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
45388           && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
45389           && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
45390           && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
45391     }
45392 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsPropertiesKHR45393     bool operator!=( PhysicalDeviceFloatControlsPropertiesKHR const& rhs ) const
45394     {
45395       return !operator==( rhs );
45396     }
45397 
45398   private:
45399     using layout::PhysicalDeviceFloatControlsPropertiesKHR::sType;
45400   };
45401   static_assert( sizeof( PhysicalDeviceFloatControlsPropertiesKHR ) == sizeof( VkPhysicalDeviceFloatControlsPropertiesKHR ), "struct and wrapper have different size!" );
45402   static_assert( std::is_standard_layout<PhysicalDeviceFloatControlsPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
45403 
45404   namespace layout
45405   {
45406     struct PhysicalDeviceFragmentDensityMapFeaturesEXT
45407     {
45408     protected:
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapFeaturesEXT45409       PhysicalDeviceFragmentDensityMapFeaturesEXT( vk::Bool32 fragmentDensityMap_ = 0,
45410                                                    vk::Bool32 fragmentDensityMapDynamic_ = 0,
45411                                                    vk::Bool32 fragmentDensityMapNonSubsampledImages_ = 0 )
45412         : fragmentDensityMap( fragmentDensityMap_ )
45413         , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ )
45414         , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
45415       {}
45416 
PhysicalDeviceFragmentDensityMapFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapFeaturesEXT45417       PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs )
45418       {
45419         *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(this) = rhs;
45420       }
45421 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapFeaturesEXT45422       PhysicalDeviceFragmentDensityMapFeaturesEXT& operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs )
45423       {
45424         *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(this) = rhs;
45425         return *this;
45426       }
45427 
45428     public:
45429       vk::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
45430       void* pNext = nullptr;
45431       vk::Bool32 fragmentDensityMap;
45432       vk::Bool32 fragmentDensityMapDynamic;
45433       vk::Bool32 fragmentDensityMapNonSubsampledImages;
45434     };
45435     static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "layout struct and wrapper have different size!" );
45436   }
45437 
45438   struct PhysicalDeviceFragmentDensityMapFeaturesEXT : public layout::PhysicalDeviceFragmentDensityMapFeaturesEXT
45439   {
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT45440     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const
45441     {
45442       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
45443     }
45444 
operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT45445     operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &()
45446     {
45447       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
45448     }
45449 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT45450     bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const
45451     {
45452       return ( sType == rhs.sType )
45453           && ( pNext == rhs.pNext )
45454           && ( fragmentDensityMap == rhs.fragmentDensityMap )
45455           && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
45456           && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
45457     }
45458 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT45459     bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const
45460     {
45461       return !operator==( rhs );
45462     }
45463 
45464   private:
45465     using layout::PhysicalDeviceFragmentDensityMapFeaturesEXT::sType;
45466   };
45467   static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
45468   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
45469 
45470   namespace layout
45471   {
45472     struct PhysicalDeviceFragmentDensityMapPropertiesEXT
45473     {
45474     protected:
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapPropertiesEXT45475       PhysicalDeviceFragmentDensityMapPropertiesEXT( vk::Extent2D minFragmentDensityTexelSize_ = vk::Extent2D(),
45476                                                      vk::Extent2D maxFragmentDensityTexelSize_ = vk::Extent2D(),
45477                                                      vk::Bool32 fragmentDensityInvocations_ = 0 )
45478         : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ )
45479         , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ )
45480         , fragmentDensityInvocations( fragmentDensityInvocations_ )
45481       {}
45482 
PhysicalDeviceFragmentDensityMapPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapPropertiesEXT45483       PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs )
45484       {
45485         *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(this) = rhs;
45486       }
45487 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentDensityMapPropertiesEXT45488       PhysicalDeviceFragmentDensityMapPropertiesEXT& operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs )
45489       {
45490         *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(this) = rhs;
45491         return *this;
45492       }
45493 
45494     public:
45495       vk::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
45496       void* pNext = nullptr;
45497       vk::Extent2D minFragmentDensityTexelSize;
45498       vk::Extent2D maxFragmentDensityTexelSize;
45499       vk::Bool32 fragmentDensityInvocations;
45500     };
45501     static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "layout struct and wrapper have different size!" );
45502   }
45503 
45504   struct PhysicalDeviceFragmentDensityMapPropertiesEXT : public layout::PhysicalDeviceFragmentDensityMapPropertiesEXT
45505   {
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT45506     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const
45507     {
45508       return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
45509     }
45510 
operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT45511     operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &()
45512     {
45513       return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
45514     }
45515 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT45516     bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const
45517     {
45518       return ( sType == rhs.sType )
45519           && ( pNext == rhs.pNext )
45520           && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
45521           && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
45522           && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
45523     }
45524 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT45525     bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const
45526     {
45527       return !operator==( rhs );
45528     }
45529 
45530   private:
45531     using layout::PhysicalDeviceFragmentDensityMapPropertiesEXT::sType;
45532   };
45533   static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
45534   static_assert( std::is_standard_layout<PhysicalDeviceFragmentDensityMapPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
45535 
45536   namespace layout
45537   {
45538     struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
45539     {
45540     protected:
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45541       PhysicalDeviceFragmentShaderBarycentricFeaturesNV( vk::Bool32 fragmentShaderBarycentric_ = 0 )
45542         : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
45543       {}
45544 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45545       PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
45546       {
45547         *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this) = rhs;
45548       }
45549 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45550       PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
45551       {
45552         *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this) = rhs;
45553         return *this;
45554       }
45555 
45556     public:
45557       vk::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
45558       void* pNext = nullptr;
45559       vk::Bool32 fragmentShaderBarycentric;
45560     };
45561     static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "layout struct and wrapper have different size!" );
45562   }
45563 
45564   struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV : public layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV
45565   {
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45566     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( vk::Bool32 fragmentShaderBarycentric_ = 0 )
45567       : layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV( fragmentShaderBarycentric_ )
45568     {}
45569 
PhysicalDeviceFragmentShaderBarycentricFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45570     PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
45571       : layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV( rhs )
45572     {}
45573 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45574     PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
45575     {
45576       *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this) = rhs;
45577       return *this;
45578     }
45579 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45580     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ )
45581     {
45582       pNext = pNext_;
45583       return *this;
45584     }
45585 
setFragmentShaderBarycentricVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45586     PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( vk::Bool32 fragmentShaderBarycentric_ )
45587     {
45588       fragmentShaderBarycentric = fragmentShaderBarycentric_;
45589       return *this;
45590     }
45591 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45592     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const
45593     {
45594       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
45595     }
45596 
operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45597     operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &()
45598     {
45599       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
45600     }
45601 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45602     bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const
45603     {
45604       return ( sType == rhs.sType )
45605           && ( pNext == rhs.pNext )
45606           && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
45607     }
45608 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV45609     bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const
45610     {
45611       return !operator==( rhs );
45612     }
45613 
45614   private:
45615     using layout::PhysicalDeviceFragmentShaderBarycentricFeaturesNV::sType;
45616   };
45617   static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
45618   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderBarycentricFeaturesNV>::value, "struct wrapper is not a standard layout!" );
45619 
45620   namespace layout
45621   {
45622     struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
45623     {
45624     protected:
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45625       PhysicalDeviceFragmentShaderInterlockFeaturesEXT( vk::Bool32 fragmentShaderSampleInterlock_ = 0,
45626                                                         vk::Bool32 fragmentShaderPixelInterlock_ = 0,
45627                                                         vk::Bool32 fragmentShaderShadingRateInterlock_ = 0 )
45628         : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
45629         , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
45630         , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
45631       {}
45632 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45633       PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
45634       {
45635         *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(this) = rhs;
45636       }
45637 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45638       PhysicalDeviceFragmentShaderInterlockFeaturesEXT& operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
45639       {
45640         *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(this) = rhs;
45641         return *this;
45642       }
45643 
45644     public:
45645       vk::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
45646       void* pNext = nullptr;
45647       vk::Bool32 fragmentShaderSampleInterlock;
45648       vk::Bool32 fragmentShaderPixelInterlock;
45649       vk::Bool32 fragmentShaderShadingRateInterlock;
45650     };
45651     static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "layout struct and wrapper have different size!" );
45652   }
45653 
45654   struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT : public layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT
45655   {
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45656     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( vk::Bool32 fragmentShaderSampleInterlock_ = 0,
45657                                                       vk::Bool32 fragmentShaderPixelInterlock_ = 0,
45658                                                       vk::Bool32 fragmentShaderShadingRateInterlock_ = 0 )
45659       : layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT( fragmentShaderSampleInterlock_, fragmentShaderPixelInterlock_, fragmentShaderShadingRateInterlock_ )
45660     {}
45661 
PhysicalDeviceFragmentShaderInterlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45662     PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
45663       : layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT( rhs )
45664     {}
45665 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45666     PhysicalDeviceFragmentShaderInterlockFeaturesEXT& operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
45667     {
45668       *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(this) = rhs;
45669       return *this;
45670     }
45671 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45672     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ )
45673     {
45674       pNext = pNext_;
45675       return *this;
45676     }
45677 
setFragmentShaderSampleInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45678     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( vk::Bool32 fragmentShaderSampleInterlock_ )
45679     {
45680       fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
45681       return *this;
45682     }
45683 
setFragmentShaderPixelInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45684     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( vk::Bool32 fragmentShaderPixelInterlock_ )
45685     {
45686       fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
45687       return *this;
45688     }
45689 
setFragmentShaderShadingRateInterlockVULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45690     PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( vk::Bool32 fragmentShaderShadingRateInterlock_ )
45691     {
45692       fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
45693       return *this;
45694     }
45695 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45696     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const
45697     {
45698       return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
45699     }
45700 
operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45701     operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &()
45702     {
45703       return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
45704     }
45705 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45706     bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const
45707     {
45708       return ( sType == rhs.sType )
45709           && ( pNext == rhs.pNext )
45710           && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
45711           && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
45712           && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
45713     }
45714 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT45715     bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const
45716     {
45717       return !operator==( rhs );
45718     }
45719 
45720   private:
45721     using layout::PhysicalDeviceFragmentShaderInterlockFeaturesEXT::sType;
45722   };
45723   static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
45724   static_assert( std::is_standard_layout<PhysicalDeviceFragmentShaderInterlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
45725 
45726   namespace layout
45727   {
45728     struct PhysicalDeviceGroupProperties
45729     {
45730     protected:
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceGroupProperties45731       PhysicalDeviceGroupProperties( uint32_t physicalDeviceCount_ = 0,
45732                                      std::array<vk::PhysicalDevice,VK_MAX_DEVICE_GROUP_SIZE> const& physicalDevices_ = { { vk::PhysicalDevice() } },
45733                                      vk::Bool32 subsetAllocation_ = 0 )
45734         : physicalDeviceCount( physicalDeviceCount_ )
45735         , subsetAllocation( subsetAllocation_ )
45736       {
45737         memcpy( &physicalDevices, physicalDevices_.data(), VK_MAX_DEVICE_GROUP_SIZE * sizeof( vk::PhysicalDevice ) );
45738 
45739       }
45740 
PhysicalDeviceGroupPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceGroupProperties45741       PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs )
45742       {
45743         *reinterpret_cast<VkPhysicalDeviceGroupProperties*>(this) = rhs;
45744       }
45745 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceGroupProperties45746       PhysicalDeviceGroupProperties& operator=( VkPhysicalDeviceGroupProperties const & rhs )
45747       {
45748         *reinterpret_cast<VkPhysicalDeviceGroupProperties*>(this) = rhs;
45749         return *this;
45750       }
45751 
45752     public:
45753       vk::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
45754       void* pNext = nullptr;
45755       uint32_t physicalDeviceCount;
45756       vk::PhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
45757       vk::Bool32 subsetAllocation;
45758     };
45759     static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "layout struct and wrapper have different size!" );
45760   }
45761 
45762   struct PhysicalDeviceGroupProperties : public layout::PhysicalDeviceGroupProperties
45763   {
operator VkPhysicalDeviceGroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties45764     operator VkPhysicalDeviceGroupProperties const&() const
45765     {
45766       return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
45767     }
45768 
operator VkPhysicalDeviceGroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties45769     operator VkPhysicalDeviceGroupProperties &()
45770     {
45771       return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
45772     }
45773 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties45774     bool operator==( PhysicalDeviceGroupProperties const& rhs ) const
45775     {
45776       return ( sType == rhs.sType )
45777           && ( pNext == rhs.pNext )
45778           && ( physicalDeviceCount == rhs.physicalDeviceCount )
45779           && ( memcmp( physicalDevices, rhs.physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof( vk::PhysicalDevice ) ) == 0 )
45780           && ( subsetAllocation == rhs.subsetAllocation );
45781     }
45782 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties45783     bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const
45784     {
45785       return !operator==( rhs );
45786     }
45787 
45788   private:
45789     using layout::PhysicalDeviceGroupProperties::sType;
45790   };
45791   static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
45792   static_assert( std::is_standard_layout<PhysicalDeviceGroupProperties>::value, "struct wrapper is not a standard layout!" );
45793 
45794   namespace layout
45795   {
45796     struct PhysicalDeviceHostQueryResetFeaturesEXT
45797     {
45798     protected:
PhysicalDeviceHostQueryResetFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceHostQueryResetFeaturesEXT45799       PhysicalDeviceHostQueryResetFeaturesEXT( vk::Bool32 hostQueryReset_ = 0 )
45800         : hostQueryReset( hostQueryReset_ )
45801       {}
45802 
PhysicalDeviceHostQueryResetFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceHostQueryResetFeaturesEXT45803       PhysicalDeviceHostQueryResetFeaturesEXT( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
45804       {
45805         *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>(this) = rhs;
45806       }
45807 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceHostQueryResetFeaturesEXT45808       PhysicalDeviceHostQueryResetFeaturesEXT& operator=( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
45809       {
45810         *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>(this) = rhs;
45811         return *this;
45812       }
45813 
45814     public:
45815       vk::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeaturesEXT;
45816       void* pNext = nullptr;
45817       vk::Bool32 hostQueryReset;
45818     };
45819     static_assert( sizeof( PhysicalDeviceHostQueryResetFeaturesEXT ) == sizeof( VkPhysicalDeviceHostQueryResetFeaturesEXT ), "layout struct and wrapper have different size!" );
45820   }
45821 
45822   struct PhysicalDeviceHostQueryResetFeaturesEXT : public layout::PhysicalDeviceHostQueryResetFeaturesEXT
45823   {
PhysicalDeviceHostQueryResetFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45824     PhysicalDeviceHostQueryResetFeaturesEXT( vk::Bool32 hostQueryReset_ = 0 )
45825       : layout::PhysicalDeviceHostQueryResetFeaturesEXT( hostQueryReset_ )
45826     {}
45827 
PhysicalDeviceHostQueryResetFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45828     PhysicalDeviceHostQueryResetFeaturesEXT( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
45829       : layout::PhysicalDeviceHostQueryResetFeaturesEXT( rhs )
45830     {}
45831 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45832     PhysicalDeviceHostQueryResetFeaturesEXT& operator=( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
45833     {
45834       *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>(this) = rhs;
45835       return *this;
45836     }
45837 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45838     PhysicalDeviceHostQueryResetFeaturesEXT & setPNext( void* pNext_ )
45839     {
45840       pNext = pNext_;
45841       return *this;
45842     }
45843 
setHostQueryResetVULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45844     PhysicalDeviceHostQueryResetFeaturesEXT & setHostQueryReset( vk::Bool32 hostQueryReset_ )
45845     {
45846       hostQueryReset = hostQueryReset_;
45847       return *this;
45848     }
45849 
operator VkPhysicalDeviceHostQueryResetFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45850     operator VkPhysicalDeviceHostQueryResetFeaturesEXT const&() const
45851     {
45852       return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeaturesEXT*>( this );
45853     }
45854 
operator VkPhysicalDeviceHostQueryResetFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45855     operator VkPhysicalDeviceHostQueryResetFeaturesEXT &()
45856     {
45857       return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>( this );
45858     }
45859 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45860     bool operator==( PhysicalDeviceHostQueryResetFeaturesEXT const& rhs ) const
45861     {
45862       return ( sType == rhs.sType )
45863           && ( pNext == rhs.pNext )
45864           && ( hostQueryReset == rhs.hostQueryReset );
45865     }
45866 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeaturesEXT45867     bool operator!=( PhysicalDeviceHostQueryResetFeaturesEXT const& rhs ) const
45868     {
45869       return !operator==( rhs );
45870     }
45871 
45872   private:
45873     using layout::PhysicalDeviceHostQueryResetFeaturesEXT::sType;
45874   };
45875   static_assert( sizeof( PhysicalDeviceHostQueryResetFeaturesEXT ) == sizeof( VkPhysicalDeviceHostQueryResetFeaturesEXT ), "struct and wrapper have different size!" );
45876   static_assert( std::is_standard_layout<PhysicalDeviceHostQueryResetFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
45877 
45878   namespace layout
45879   {
45880     struct PhysicalDeviceIDProperties
45881     {
45882     protected:
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIDProperties45883       PhysicalDeviceIDProperties( std::array<uint8_t,VK_UUID_SIZE> const& deviceUUID_ = { { 0 } },
45884                                   std::array<uint8_t,VK_UUID_SIZE> const& driverUUID_ = { { 0 } },
45885                                   std::array<uint8_t,VK_LUID_SIZE> const& deviceLUID_ = { { 0 } },
45886                                   uint32_t deviceNodeMask_ = 0,
45887                                   vk::Bool32 deviceLUIDValid_ = 0 )
45888         : deviceNodeMask( deviceNodeMask_ )
45889         , deviceLUIDValid( deviceLUIDValid_ )
45890       {
45891         memcpy( &deviceUUID, deviceUUID_.data(), VK_UUID_SIZE * sizeof( uint8_t ) );
45892         memcpy( &driverUUID, driverUUID_.data(), VK_UUID_SIZE * sizeof( uint8_t ) );
45893         memcpy( &deviceLUID, deviceLUID_.data(), VK_LUID_SIZE * sizeof( uint8_t ) );
45894 
45895       }
45896 
PhysicalDeviceIDPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIDProperties45897       PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs )
45898       {
45899         *reinterpret_cast<VkPhysicalDeviceIDProperties*>(this) = rhs;
45900       }
45901 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIDProperties45902       PhysicalDeviceIDProperties& operator=( VkPhysicalDeviceIDProperties const & rhs )
45903       {
45904         *reinterpret_cast<VkPhysicalDeviceIDProperties*>(this) = rhs;
45905         return *this;
45906       }
45907 
45908     public:
45909       vk::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
45910       void* pNext = nullptr;
45911       uint8_t deviceUUID[VK_UUID_SIZE];
45912       uint8_t driverUUID[VK_UUID_SIZE];
45913       uint8_t deviceLUID[VK_LUID_SIZE];
45914       uint32_t deviceNodeMask;
45915       vk::Bool32 deviceLUIDValid;
45916     };
45917     static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "layout struct and wrapper have different size!" );
45918   }
45919 
45920   struct PhysicalDeviceIDProperties : public layout::PhysicalDeviceIDProperties
45921   {
operator VkPhysicalDeviceIDProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties45922     operator VkPhysicalDeviceIDProperties const&() const
45923     {
45924       return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
45925     }
45926 
operator VkPhysicalDeviceIDProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties45927     operator VkPhysicalDeviceIDProperties &()
45928     {
45929       return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
45930     }
45931 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties45932     bool operator==( PhysicalDeviceIDProperties const& rhs ) const
45933     {
45934       return ( sType == rhs.sType )
45935           && ( pNext == rhs.pNext )
45936           && ( memcmp( deviceUUID, rhs.deviceUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
45937           && ( memcmp( driverUUID, rhs.driverUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
45938           && ( memcmp( deviceLUID, rhs.deviceLUID, VK_LUID_SIZE * sizeof( uint8_t ) ) == 0 )
45939           && ( deviceNodeMask == rhs.deviceNodeMask )
45940           && ( deviceLUIDValid == rhs.deviceLUIDValid );
45941     }
45942 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties45943     bool operator!=( PhysicalDeviceIDProperties const& rhs ) const
45944     {
45945       return !operator==( rhs );
45946     }
45947 
45948   private:
45949     using layout::PhysicalDeviceIDProperties::sType;
45950   };
45951   static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
45952   static_assert( std::is_standard_layout<PhysicalDeviceIDProperties>::value, "struct wrapper is not a standard layout!" );
45953 
45954   namespace layout
45955   {
45956     struct PhysicalDeviceImageDrmFormatModifierInfoEXT
45957     {
45958     protected:
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageDrmFormatModifierInfoEXT45959       PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = 0,
45960                                                    vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
45961                                                    uint32_t queueFamilyIndexCount_ = 0,
45962                                                    const uint32_t* pQueueFamilyIndices_ = nullptr )
45963         : drmFormatModifier( drmFormatModifier_ )
45964         , sharingMode( sharingMode_ )
45965         , queueFamilyIndexCount( queueFamilyIndexCount_ )
45966         , pQueueFamilyIndices( pQueueFamilyIndices_ )
45967       {}
45968 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageDrmFormatModifierInfoEXT45969       PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
45970       {
45971         *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(this) = rhs;
45972       }
45973 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageDrmFormatModifierInfoEXT45974       PhysicalDeviceImageDrmFormatModifierInfoEXT& operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
45975       {
45976         *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(this) = rhs;
45977         return *this;
45978       }
45979 
45980     public:
45981       vk::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
45982       const void* pNext = nullptr;
45983       uint64_t drmFormatModifier;
45984       vk::SharingMode sharingMode;
45985       uint32_t queueFamilyIndexCount;
45986       const uint32_t* pQueueFamilyIndices;
45987     };
45988     static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "layout struct and wrapper have different size!" );
45989   }
45990 
45991   struct PhysicalDeviceImageDrmFormatModifierInfoEXT : public layout::PhysicalDeviceImageDrmFormatModifierInfoEXT
45992   {
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT45993     PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = 0,
45994                                                  vk::SharingMode sharingMode_ = vk::SharingMode::eExclusive,
45995                                                  uint32_t queueFamilyIndexCount_ = 0,
45996                                                  const uint32_t* pQueueFamilyIndices_ = nullptr )
45997       : layout::PhysicalDeviceImageDrmFormatModifierInfoEXT( drmFormatModifier_, sharingMode_, queueFamilyIndexCount_, pQueueFamilyIndices_ )
45998     {}
45999 
PhysicalDeviceImageDrmFormatModifierInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46000     PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
46001       : layout::PhysicalDeviceImageDrmFormatModifierInfoEXT( rhs )
46002     {}
46003 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46004     PhysicalDeviceImageDrmFormatModifierInfoEXT& operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
46005     {
46006       *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(this) = rhs;
46007       return *this;
46008     }
46009 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46010     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ )
46011     {
46012       pNext = pNext_;
46013       return *this;
46014     }
46015 
setDrmFormatModifierVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46016     PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ )
46017     {
46018       drmFormatModifier = drmFormatModifier_;
46019       return *this;
46020     }
46021 
setSharingModeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46022     PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( vk::SharingMode sharingMode_ )
46023     {
46024       sharingMode = sharingMode_;
46025       return *this;
46026     }
46027 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46028     PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
46029     {
46030       queueFamilyIndexCount = queueFamilyIndexCount_;
46031       return *this;
46032     }
46033 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46034     PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
46035     {
46036       pQueueFamilyIndices = pQueueFamilyIndices_;
46037       return *this;
46038     }
46039 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46040     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const
46041     {
46042       return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
46043     }
46044 
operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46045     operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &()
46046     {
46047       return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
46048     }
46049 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46050     bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const
46051     {
46052       return ( sType == rhs.sType )
46053           && ( pNext == rhs.pNext )
46054           && ( drmFormatModifier == rhs.drmFormatModifier )
46055           && ( sharingMode == rhs.sharingMode )
46056           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
46057           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
46058     }
46059 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT46060     bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const
46061     {
46062       return !operator==( rhs );
46063     }
46064 
46065   private:
46066     using layout::PhysicalDeviceImageDrmFormatModifierInfoEXT::sType;
46067   };
46068   static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
46069   static_assert( std::is_standard_layout<PhysicalDeviceImageDrmFormatModifierInfoEXT>::value, "struct wrapper is not a standard layout!" );
46070 
46071   namespace layout
46072   {
46073     struct PhysicalDeviceImageFormatInfo2
46074     {
46075     protected:
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageFormatInfo246076       PhysicalDeviceImageFormatInfo2( vk::Format format_ = vk::Format::eUndefined,
46077                                       vk::ImageType type_ = vk::ImageType::e1D,
46078                                       vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal,
46079                                       vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
46080                                       vk::ImageCreateFlags flags_ = vk::ImageCreateFlags() )
46081         : format( format_ )
46082         , type( type_ )
46083         , tiling( tiling_ )
46084         , usage( usage_ )
46085         , flags( flags_ )
46086       {}
46087 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageFormatInfo246088       PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs )
46089       {
46090         *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this) = rhs;
46091       }
46092 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageFormatInfo246093       PhysicalDeviceImageFormatInfo2& operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs )
46094       {
46095         *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this) = rhs;
46096         return *this;
46097       }
46098 
46099     public:
46100       vk::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
46101       const void* pNext = nullptr;
46102       vk::Format format;
46103       vk::ImageType type;
46104       vk::ImageTiling tiling;
46105       vk::ImageUsageFlags usage;
46106       vk::ImageCreateFlags flags;
46107     };
46108     static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "layout struct and wrapper have different size!" );
46109   }
46110 
46111   struct PhysicalDeviceImageFormatInfo2 : public layout::PhysicalDeviceImageFormatInfo2
46112   {
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246113     PhysicalDeviceImageFormatInfo2( vk::Format format_ = vk::Format::eUndefined,
46114                                     vk::ImageType type_ = vk::ImageType::e1D,
46115                                     vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal,
46116                                     vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
46117                                     vk::ImageCreateFlags flags_ = vk::ImageCreateFlags() )
46118       : layout::PhysicalDeviceImageFormatInfo2( format_, type_, tiling_, usage_, flags_ )
46119     {}
46120 
PhysicalDeviceImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246121     PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs )
46122       : layout::PhysicalDeviceImageFormatInfo2( rhs )
46123     {}
46124 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246125     PhysicalDeviceImageFormatInfo2& operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs )
46126     {
46127       *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this) = rhs;
46128       return *this;
46129     }
46130 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246131     PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ )
46132     {
46133       pNext = pNext_;
46134       return *this;
46135     }
46136 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246137     PhysicalDeviceImageFormatInfo2 & setFormat( vk::Format format_ )
46138     {
46139       format = format_;
46140       return *this;
46141     }
46142 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246143     PhysicalDeviceImageFormatInfo2 & setType( vk::ImageType type_ )
46144     {
46145       type = type_;
46146       return *this;
46147     }
46148 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246149     PhysicalDeviceImageFormatInfo2 & setTiling( vk::ImageTiling tiling_ )
46150     {
46151       tiling = tiling_;
46152       return *this;
46153     }
46154 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246155     PhysicalDeviceImageFormatInfo2 & setUsage( vk::ImageUsageFlags usage_ )
46156     {
46157       usage = usage_;
46158       return *this;
46159     }
46160 
setFlagsVULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246161     PhysicalDeviceImageFormatInfo2 & setFlags( vk::ImageCreateFlags flags_ )
46162     {
46163       flags = flags_;
46164       return *this;
46165     }
46166 
operator VkPhysicalDeviceImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246167     operator VkPhysicalDeviceImageFormatInfo2 const&() const
46168     {
46169       return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
46170     }
46171 
operator VkPhysicalDeviceImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246172     operator VkPhysicalDeviceImageFormatInfo2 &()
46173     {
46174       return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
46175     }
46176 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246177     bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const
46178     {
46179       return ( sType == rhs.sType )
46180           && ( pNext == rhs.pNext )
46181           && ( format == rhs.format )
46182           && ( type == rhs.type )
46183           && ( tiling == rhs.tiling )
46184           && ( usage == rhs.usage )
46185           && ( flags == rhs.flags );
46186     }
46187 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo246188     bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const
46189     {
46190       return !operator==( rhs );
46191     }
46192 
46193   private:
46194     using layout::PhysicalDeviceImageFormatInfo2::sType;
46195   };
46196   static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
46197   static_assert( std::is_standard_layout<PhysicalDeviceImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
46198 
46199   namespace layout
46200   {
46201     struct PhysicalDeviceImageViewImageFormatInfoEXT
46202     {
46203     protected:
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageViewImageFormatInfoEXT46204       PhysicalDeviceImageViewImageFormatInfoEXT( vk::ImageViewType imageViewType_ = vk::ImageViewType::e1D )
46205         : imageViewType( imageViewType_ )
46206       {}
46207 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageViewImageFormatInfoEXT46208       PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
46209       {
46210         *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(this) = rhs;
46211       }
46212 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImageViewImageFormatInfoEXT46213       PhysicalDeviceImageViewImageFormatInfoEXT& operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
46214       {
46215         *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(this) = rhs;
46216         return *this;
46217       }
46218 
46219     public:
46220       vk::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
46221       void* pNext = nullptr;
46222       vk::ImageViewType imageViewType;
46223     };
46224     static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "layout struct and wrapper have different size!" );
46225   }
46226 
46227   struct PhysicalDeviceImageViewImageFormatInfoEXT : public layout::PhysicalDeviceImageViewImageFormatInfoEXT
46228   {
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46229     PhysicalDeviceImageViewImageFormatInfoEXT( vk::ImageViewType imageViewType_ = vk::ImageViewType::e1D )
46230       : layout::PhysicalDeviceImageViewImageFormatInfoEXT( imageViewType_ )
46231     {}
46232 
PhysicalDeviceImageViewImageFormatInfoEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46233     PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
46234       : layout::PhysicalDeviceImageViewImageFormatInfoEXT( rhs )
46235     {}
46236 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46237     PhysicalDeviceImageViewImageFormatInfoEXT& operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
46238     {
46239       *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(this) = rhs;
46240       return *this;
46241     }
46242 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46243     PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ )
46244     {
46245       pNext = pNext_;
46246       return *this;
46247     }
46248 
setImageViewTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46249     PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( vk::ImageViewType imageViewType_ )
46250     {
46251       imageViewType = imageViewType_;
46252       return *this;
46253     }
46254 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46255     operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const
46256     {
46257       return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
46258     }
46259 
operator VkPhysicalDeviceImageViewImageFormatInfoEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46260     operator VkPhysicalDeviceImageViewImageFormatInfoEXT &()
46261     {
46262       return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
46263     }
46264 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46265     bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const
46266     {
46267       return ( sType == rhs.sType )
46268           && ( pNext == rhs.pNext )
46269           && ( imageViewType == rhs.imageViewType );
46270     }
46271 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT46272     bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const
46273     {
46274       return !operator==( rhs );
46275     }
46276 
46277   private:
46278     using layout::PhysicalDeviceImageViewImageFormatInfoEXT::sType;
46279   };
46280   static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
46281   static_assert( std::is_standard_layout<PhysicalDeviceImageViewImageFormatInfoEXT>::value, "struct wrapper is not a standard layout!" );
46282 
46283   namespace layout
46284   {
46285     struct PhysicalDeviceImagelessFramebufferFeaturesKHR
46286     {
46287     protected:
PhysicalDeviceImagelessFramebufferFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImagelessFramebufferFeaturesKHR46288       PhysicalDeviceImagelessFramebufferFeaturesKHR( vk::Bool32 imagelessFramebuffer_ = 0 )
46289         : imagelessFramebuffer( imagelessFramebuffer_ )
46290       {}
46291 
PhysicalDeviceImagelessFramebufferFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImagelessFramebufferFeaturesKHR46292       PhysicalDeviceImagelessFramebufferFeaturesKHR( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
46293       {
46294         *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>(this) = rhs;
46295       }
46296 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceImagelessFramebufferFeaturesKHR46297       PhysicalDeviceImagelessFramebufferFeaturesKHR& operator=( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
46298       {
46299         *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>(this) = rhs;
46300         return *this;
46301       }
46302 
46303     public:
46304       vk::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeaturesKHR;
46305       void* pNext = nullptr;
46306       vk::Bool32 imagelessFramebuffer;
46307     };
46308     static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeaturesKHR ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeaturesKHR ), "layout struct and wrapper have different size!" );
46309   }
46310 
46311   struct PhysicalDeviceImagelessFramebufferFeaturesKHR : public layout::PhysicalDeviceImagelessFramebufferFeaturesKHR
46312   {
PhysicalDeviceImagelessFramebufferFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46313     PhysicalDeviceImagelessFramebufferFeaturesKHR( vk::Bool32 imagelessFramebuffer_ = 0 )
46314       : layout::PhysicalDeviceImagelessFramebufferFeaturesKHR( imagelessFramebuffer_ )
46315     {}
46316 
PhysicalDeviceImagelessFramebufferFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46317     PhysicalDeviceImagelessFramebufferFeaturesKHR( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
46318       : layout::PhysicalDeviceImagelessFramebufferFeaturesKHR( rhs )
46319     {}
46320 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46321     PhysicalDeviceImagelessFramebufferFeaturesKHR& operator=( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
46322     {
46323       *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>(this) = rhs;
46324       return *this;
46325     }
46326 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46327     PhysicalDeviceImagelessFramebufferFeaturesKHR & setPNext( void* pNext_ )
46328     {
46329       pNext = pNext_;
46330       return *this;
46331     }
46332 
setImagelessFramebufferVULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46333     PhysicalDeviceImagelessFramebufferFeaturesKHR & setImagelessFramebuffer( vk::Bool32 imagelessFramebuffer_ )
46334     {
46335       imagelessFramebuffer = imagelessFramebuffer_;
46336       return *this;
46337     }
46338 
operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46339     operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR const&() const
46340     {
46341       return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>( this );
46342     }
46343 
operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46344     operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR &()
46345     {
46346       return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>( this );
46347     }
46348 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46349     bool operator==( PhysicalDeviceImagelessFramebufferFeaturesKHR const& rhs ) const
46350     {
46351       return ( sType == rhs.sType )
46352           && ( pNext == rhs.pNext )
46353           && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
46354     }
46355 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeaturesKHR46356     bool operator!=( PhysicalDeviceImagelessFramebufferFeaturesKHR const& rhs ) const
46357     {
46358       return !operator==( rhs );
46359     }
46360 
46361   private:
46362     using layout::PhysicalDeviceImagelessFramebufferFeaturesKHR::sType;
46363   };
46364   static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeaturesKHR ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeaturesKHR ), "struct and wrapper have different size!" );
46365   static_assert( std::is_standard_layout<PhysicalDeviceImagelessFramebufferFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
46366 
46367   namespace layout
46368   {
46369     struct PhysicalDeviceIndexTypeUint8FeaturesEXT
46370     {
46371     protected:
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIndexTypeUint8FeaturesEXT46372       PhysicalDeviceIndexTypeUint8FeaturesEXT( vk::Bool32 indexTypeUint8_ = 0 )
46373         : indexTypeUint8( indexTypeUint8_ )
46374       {}
46375 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIndexTypeUint8FeaturesEXT46376       PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs )
46377       {
46378         *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(this) = rhs;
46379       }
46380 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceIndexTypeUint8FeaturesEXT46381       PhysicalDeviceIndexTypeUint8FeaturesEXT& operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs )
46382       {
46383         *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(this) = rhs;
46384         return *this;
46385       }
46386 
46387     public:
46388       vk::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
46389       void* pNext = nullptr;
46390       vk::Bool32 indexTypeUint8;
46391     };
46392     static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "layout struct and wrapper have different size!" );
46393   }
46394 
46395   struct PhysicalDeviceIndexTypeUint8FeaturesEXT : public layout::PhysicalDeviceIndexTypeUint8FeaturesEXT
46396   {
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46397     PhysicalDeviceIndexTypeUint8FeaturesEXT( vk::Bool32 indexTypeUint8_ = 0 )
46398       : layout::PhysicalDeviceIndexTypeUint8FeaturesEXT( indexTypeUint8_ )
46399     {}
46400 
PhysicalDeviceIndexTypeUint8FeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46401     PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs )
46402       : layout::PhysicalDeviceIndexTypeUint8FeaturesEXT( rhs )
46403     {}
46404 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46405     PhysicalDeviceIndexTypeUint8FeaturesEXT& operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs )
46406     {
46407       *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(this) = rhs;
46408       return *this;
46409     }
46410 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46411     PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ )
46412     {
46413       pNext = pNext_;
46414       return *this;
46415     }
46416 
setIndexTypeUint8VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46417     PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( vk::Bool32 indexTypeUint8_ )
46418     {
46419       indexTypeUint8 = indexTypeUint8_;
46420       return *this;
46421     }
46422 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46423     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const
46424     {
46425       return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
46426     }
46427 
operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46428     operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &()
46429     {
46430       return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>( this );
46431     }
46432 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46433     bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const
46434     {
46435       return ( sType == rhs.sType )
46436           && ( pNext == rhs.pNext )
46437           && ( indexTypeUint8 == rhs.indexTypeUint8 );
46438     }
46439 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT46440     bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const
46441     {
46442       return !operator==( rhs );
46443     }
46444 
46445   private:
46446     using layout::PhysicalDeviceIndexTypeUint8FeaturesEXT::sType;
46447   };
46448   static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" );
46449   static_assert( std::is_standard_layout<PhysicalDeviceIndexTypeUint8FeaturesEXT>::value, "struct wrapper is not a standard layout!" );
46450 
46451   namespace layout
46452   {
46453     struct PhysicalDeviceInlineUniformBlockFeaturesEXT
46454     {
46455     protected:
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockFeaturesEXT46456       PhysicalDeviceInlineUniformBlockFeaturesEXT( vk::Bool32 inlineUniformBlock_ = 0,
46457                                                    vk::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = 0 )
46458         : inlineUniformBlock( inlineUniformBlock_ )
46459         , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
46460       {}
46461 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockFeaturesEXT46462       PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
46463       {
46464         *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this) = rhs;
46465       }
46466 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockFeaturesEXT46467       PhysicalDeviceInlineUniformBlockFeaturesEXT& operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
46468       {
46469         *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this) = rhs;
46470         return *this;
46471       }
46472 
46473     public:
46474       vk::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
46475       void* pNext = nullptr;
46476       vk::Bool32 inlineUniformBlock;
46477       vk::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
46478     };
46479     static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "layout struct and wrapper have different size!" );
46480   }
46481 
46482   struct PhysicalDeviceInlineUniformBlockFeaturesEXT : public layout::PhysicalDeviceInlineUniformBlockFeaturesEXT
46483   {
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46484     PhysicalDeviceInlineUniformBlockFeaturesEXT( vk::Bool32 inlineUniformBlock_ = 0,
46485                                                  vk::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = 0 )
46486       : layout::PhysicalDeviceInlineUniformBlockFeaturesEXT( inlineUniformBlock_, descriptorBindingInlineUniformBlockUpdateAfterBind_ )
46487     {}
46488 
PhysicalDeviceInlineUniformBlockFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46489     PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
46490       : layout::PhysicalDeviceInlineUniformBlockFeaturesEXT( rhs )
46491     {}
46492 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46493     PhysicalDeviceInlineUniformBlockFeaturesEXT& operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
46494     {
46495       *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this) = rhs;
46496       return *this;
46497     }
46498 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46499     PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ )
46500     {
46501       pNext = pNext_;
46502       return *this;
46503     }
46504 
setInlineUniformBlockVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46505     PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( vk::Bool32 inlineUniformBlock_ )
46506     {
46507       inlineUniformBlock = inlineUniformBlock_;
46508       return *this;
46509     }
46510 
setDescriptorBindingInlineUniformBlockUpdateAfterBindVULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46511     PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( vk::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ )
46512     {
46513       descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
46514       return *this;
46515     }
46516 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46517     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const
46518     {
46519       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
46520     }
46521 
operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46522     operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &()
46523     {
46524       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
46525     }
46526 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46527     bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const
46528     {
46529       return ( sType == rhs.sType )
46530           && ( pNext == rhs.pNext )
46531           && ( inlineUniformBlock == rhs.inlineUniformBlock )
46532           && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
46533     }
46534 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT46535     bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const
46536     {
46537       return !operator==( rhs );
46538     }
46539 
46540   private:
46541     using layout::PhysicalDeviceInlineUniformBlockFeaturesEXT::sType;
46542   };
46543   static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
46544   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
46545 
46546   namespace layout
46547   {
46548     struct PhysicalDeviceInlineUniformBlockPropertiesEXT
46549     {
46550     protected:
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockPropertiesEXT46551       PhysicalDeviceInlineUniformBlockPropertiesEXT( uint32_t maxInlineUniformBlockSize_ = 0,
46552                                                      uint32_t maxPerStageDescriptorInlineUniformBlocks_ = 0,
46553                                                      uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = 0,
46554                                                      uint32_t maxDescriptorSetInlineUniformBlocks_ = 0,
46555                                                      uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = 0 )
46556         : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
46557         , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
46558         , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
46559         , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
46560         , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
46561       {}
46562 
PhysicalDeviceInlineUniformBlockPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockPropertiesEXT46563       PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs )
46564       {
46565         *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(this) = rhs;
46566       }
46567 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceInlineUniformBlockPropertiesEXT46568       PhysicalDeviceInlineUniformBlockPropertiesEXT& operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs )
46569       {
46570         *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(this) = rhs;
46571         return *this;
46572       }
46573 
46574     public:
46575       vk::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
46576       void* pNext = nullptr;
46577       uint32_t maxInlineUniformBlockSize;
46578       uint32_t maxPerStageDescriptorInlineUniformBlocks;
46579       uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
46580       uint32_t maxDescriptorSetInlineUniformBlocks;
46581       uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
46582     };
46583     static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "layout struct and wrapper have different size!" );
46584   }
46585 
46586   struct PhysicalDeviceInlineUniformBlockPropertiesEXT : public layout::PhysicalDeviceInlineUniformBlockPropertiesEXT
46587   {
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT46588     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const
46589     {
46590       return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
46591     }
46592 
operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT46593     operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &()
46594     {
46595       return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
46596     }
46597 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT46598     bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const
46599     {
46600       return ( sType == rhs.sType )
46601           && ( pNext == rhs.pNext )
46602           && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
46603           && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
46604           && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
46605           && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
46606           && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
46607     }
46608 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT46609     bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const
46610     {
46611       return !operator==( rhs );
46612     }
46613 
46614   private:
46615     using layout::PhysicalDeviceInlineUniformBlockPropertiesEXT::sType;
46616   };
46617   static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
46618   static_assert( std::is_standard_layout<PhysicalDeviceInlineUniformBlockPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
46619 
46620   struct PhysicalDeviceLimits
46621   {
operator VkPhysicalDeviceLimits const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits46622     operator VkPhysicalDeviceLimits const&() const
46623     {
46624       return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
46625     }
46626 
operator VkPhysicalDeviceLimits&VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits46627     operator VkPhysicalDeviceLimits &()
46628     {
46629       return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
46630     }
46631 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits46632     bool operator==( PhysicalDeviceLimits const& rhs ) const
46633     {
46634       return ( maxImageDimension1D == rhs.maxImageDimension1D )
46635           && ( maxImageDimension2D == rhs.maxImageDimension2D )
46636           && ( maxImageDimension3D == rhs.maxImageDimension3D )
46637           && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
46638           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
46639           && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
46640           && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
46641           && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
46642           && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
46643           && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
46644           && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
46645           && ( bufferImageGranularity == rhs.bufferImageGranularity )
46646           && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
46647           && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
46648           && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
46649           && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
46650           && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
46651           && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
46652           && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
46653           && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
46654           && ( maxPerStageResources == rhs.maxPerStageResources )
46655           && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
46656           && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
46657           && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
46658           && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
46659           && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
46660           && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
46661           && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
46662           && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
46663           && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
46664           && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
46665           && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
46666           && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
46667           && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
46668           && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
46669           && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
46670           && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
46671           && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
46672           && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
46673           && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
46674           && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
46675           && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
46676           && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
46677           && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
46678           && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
46679           && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
46680           && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
46681           && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
46682           && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
46683           && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
46684           && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
46685           && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
46686           && ( memcmp( maxComputeWorkGroupCount, rhs.maxComputeWorkGroupCount, 3 * sizeof( uint32_t ) ) == 0 )
46687           && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
46688           && ( memcmp( maxComputeWorkGroupSize, rhs.maxComputeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
46689           && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
46690           && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
46691           && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
46692           && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
46693           && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
46694           && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
46695           && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
46696           && ( maxViewports == rhs.maxViewports )
46697           && ( memcmp( maxViewportDimensions, rhs.maxViewportDimensions, 2 * sizeof( uint32_t ) ) == 0 )
46698           && ( memcmp( viewportBoundsRange, rhs.viewportBoundsRange, 2 * sizeof( float ) ) == 0 )
46699           && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
46700           && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
46701           && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
46702           && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
46703           && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
46704           && ( minTexelOffset == rhs.minTexelOffset )
46705           && ( maxTexelOffset == rhs.maxTexelOffset )
46706           && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
46707           && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
46708           && ( minInterpolationOffset == rhs.minInterpolationOffset )
46709           && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
46710           && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
46711           && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
46712           && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
46713           && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
46714           && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
46715           && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
46716           && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
46717           && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
46718           && ( maxColorAttachments == rhs.maxColorAttachments )
46719           && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
46720           && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
46721           && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
46722           && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
46723           && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
46724           && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
46725           && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
46726           && ( timestampPeriod == rhs.timestampPeriod )
46727           && ( maxClipDistances == rhs.maxClipDistances )
46728           && ( maxCullDistances == rhs.maxCullDistances )
46729           && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
46730           && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
46731           && ( memcmp( pointSizeRange, rhs.pointSizeRange, 2 * sizeof( float ) ) == 0 )
46732           && ( memcmp( lineWidthRange, rhs.lineWidthRange, 2 * sizeof( float ) ) == 0 )
46733           && ( pointSizeGranularity == rhs.pointSizeGranularity )
46734           && ( lineWidthGranularity == rhs.lineWidthGranularity )
46735           && ( strictLines == rhs.strictLines )
46736           && ( standardSampleLocations == rhs.standardSampleLocations )
46737           && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
46738           && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
46739           && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
46740     }
46741 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits46742     bool operator!=( PhysicalDeviceLimits const& rhs ) const
46743     {
46744       return !operator==( rhs );
46745     }
46746 
46747   public:
46748     uint32_t maxImageDimension1D;
46749     uint32_t maxImageDimension2D;
46750     uint32_t maxImageDimension3D;
46751     uint32_t maxImageDimensionCube;
46752     uint32_t maxImageArrayLayers;
46753     uint32_t maxTexelBufferElements;
46754     uint32_t maxUniformBufferRange;
46755     uint32_t maxStorageBufferRange;
46756     uint32_t maxPushConstantsSize;
46757     uint32_t maxMemoryAllocationCount;
46758     uint32_t maxSamplerAllocationCount;
46759     vk::DeviceSize bufferImageGranularity;
46760     vk::DeviceSize sparseAddressSpaceSize;
46761     uint32_t maxBoundDescriptorSets;
46762     uint32_t maxPerStageDescriptorSamplers;
46763     uint32_t maxPerStageDescriptorUniformBuffers;
46764     uint32_t maxPerStageDescriptorStorageBuffers;
46765     uint32_t maxPerStageDescriptorSampledImages;
46766     uint32_t maxPerStageDescriptorStorageImages;
46767     uint32_t maxPerStageDescriptorInputAttachments;
46768     uint32_t maxPerStageResources;
46769     uint32_t maxDescriptorSetSamplers;
46770     uint32_t maxDescriptorSetUniformBuffers;
46771     uint32_t maxDescriptorSetUniformBuffersDynamic;
46772     uint32_t maxDescriptorSetStorageBuffers;
46773     uint32_t maxDescriptorSetStorageBuffersDynamic;
46774     uint32_t maxDescriptorSetSampledImages;
46775     uint32_t maxDescriptorSetStorageImages;
46776     uint32_t maxDescriptorSetInputAttachments;
46777     uint32_t maxVertexInputAttributes;
46778     uint32_t maxVertexInputBindings;
46779     uint32_t maxVertexInputAttributeOffset;
46780     uint32_t maxVertexInputBindingStride;
46781     uint32_t maxVertexOutputComponents;
46782     uint32_t maxTessellationGenerationLevel;
46783     uint32_t maxTessellationPatchSize;
46784     uint32_t maxTessellationControlPerVertexInputComponents;
46785     uint32_t maxTessellationControlPerVertexOutputComponents;
46786     uint32_t maxTessellationControlPerPatchOutputComponents;
46787     uint32_t maxTessellationControlTotalOutputComponents;
46788     uint32_t maxTessellationEvaluationInputComponents;
46789     uint32_t maxTessellationEvaluationOutputComponents;
46790     uint32_t maxGeometryShaderInvocations;
46791     uint32_t maxGeometryInputComponents;
46792     uint32_t maxGeometryOutputComponents;
46793     uint32_t maxGeometryOutputVertices;
46794     uint32_t maxGeometryTotalOutputComponents;
46795     uint32_t maxFragmentInputComponents;
46796     uint32_t maxFragmentOutputAttachments;
46797     uint32_t maxFragmentDualSrcAttachments;
46798     uint32_t maxFragmentCombinedOutputResources;
46799     uint32_t maxComputeSharedMemorySize;
46800     uint32_t maxComputeWorkGroupCount[3];
46801     uint32_t maxComputeWorkGroupInvocations;
46802     uint32_t maxComputeWorkGroupSize[3];
46803     uint32_t subPixelPrecisionBits;
46804     uint32_t subTexelPrecisionBits;
46805     uint32_t mipmapPrecisionBits;
46806     uint32_t maxDrawIndexedIndexValue;
46807     uint32_t maxDrawIndirectCount;
46808     float maxSamplerLodBias;
46809     float maxSamplerAnisotropy;
46810     uint32_t maxViewports;
46811     uint32_t maxViewportDimensions[2];
46812     float viewportBoundsRange[2];
46813     uint32_t viewportSubPixelBits;
46814     size_t minMemoryMapAlignment;
46815     vk::DeviceSize minTexelBufferOffsetAlignment;
46816     vk::DeviceSize minUniformBufferOffsetAlignment;
46817     vk::DeviceSize minStorageBufferOffsetAlignment;
46818     int32_t minTexelOffset;
46819     uint32_t maxTexelOffset;
46820     int32_t minTexelGatherOffset;
46821     uint32_t maxTexelGatherOffset;
46822     float minInterpolationOffset;
46823     float maxInterpolationOffset;
46824     uint32_t subPixelInterpolationOffsetBits;
46825     uint32_t maxFramebufferWidth;
46826     uint32_t maxFramebufferHeight;
46827     uint32_t maxFramebufferLayers;
46828     vk::SampleCountFlags framebufferColorSampleCounts;
46829     vk::SampleCountFlags framebufferDepthSampleCounts;
46830     vk::SampleCountFlags framebufferStencilSampleCounts;
46831     vk::SampleCountFlags framebufferNoAttachmentsSampleCounts;
46832     uint32_t maxColorAttachments;
46833     vk::SampleCountFlags sampledImageColorSampleCounts;
46834     vk::SampleCountFlags sampledImageIntegerSampleCounts;
46835     vk::SampleCountFlags sampledImageDepthSampleCounts;
46836     vk::SampleCountFlags sampledImageStencilSampleCounts;
46837     vk::SampleCountFlags storageImageSampleCounts;
46838     uint32_t maxSampleMaskWords;
46839     vk::Bool32 timestampComputeAndGraphics;
46840     float timestampPeriod;
46841     uint32_t maxClipDistances;
46842     uint32_t maxCullDistances;
46843     uint32_t maxCombinedClipAndCullDistances;
46844     uint32_t discreteQueuePriorities;
46845     float pointSizeRange[2];
46846     float lineWidthRange[2];
46847     float pointSizeGranularity;
46848     float lineWidthGranularity;
46849     vk::Bool32 strictLines;
46850     vk::Bool32 standardSampleLocations;
46851     vk::DeviceSize optimalBufferCopyOffsetAlignment;
46852     vk::DeviceSize optimalBufferCopyRowPitchAlignment;
46853     vk::DeviceSize nonCoherentAtomSize;
46854   };
46855   static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
46856   static_assert( std::is_standard_layout<PhysicalDeviceLimits>::value, "struct wrapper is not a standard layout!" );
46857 
46858   namespace layout
46859   {
46860     struct PhysicalDeviceLineRasterizationFeaturesEXT
46861     {
46862     protected:
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationFeaturesEXT46863       PhysicalDeviceLineRasterizationFeaturesEXT( vk::Bool32 rectangularLines_ = 0,
46864                                                   vk::Bool32 bresenhamLines_ = 0,
46865                                                   vk::Bool32 smoothLines_ = 0,
46866                                                   vk::Bool32 stippledRectangularLines_ = 0,
46867                                                   vk::Bool32 stippledBresenhamLines_ = 0,
46868                                                   vk::Bool32 stippledSmoothLines_ = 0 )
46869         : rectangularLines( rectangularLines_ )
46870         , bresenhamLines( bresenhamLines_ )
46871         , smoothLines( smoothLines_ )
46872         , stippledRectangularLines( stippledRectangularLines_ )
46873         , stippledBresenhamLines( stippledBresenhamLines_ )
46874         , stippledSmoothLines( stippledSmoothLines_ )
46875       {}
46876 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationFeaturesEXT46877       PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs )
46878       {
46879         *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(this) = rhs;
46880       }
46881 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationFeaturesEXT46882       PhysicalDeviceLineRasterizationFeaturesEXT& operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs )
46883       {
46884         *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(this) = rhs;
46885         return *this;
46886       }
46887 
46888     public:
46889       vk::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
46890       void* pNext = nullptr;
46891       vk::Bool32 rectangularLines;
46892       vk::Bool32 bresenhamLines;
46893       vk::Bool32 smoothLines;
46894       vk::Bool32 stippledRectangularLines;
46895       vk::Bool32 stippledBresenhamLines;
46896       vk::Bool32 stippledSmoothLines;
46897     };
46898     static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "layout struct and wrapper have different size!" );
46899   }
46900 
46901   struct PhysicalDeviceLineRasterizationFeaturesEXT : public layout::PhysicalDeviceLineRasterizationFeaturesEXT
46902   {
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46903     PhysicalDeviceLineRasterizationFeaturesEXT( vk::Bool32 rectangularLines_ = 0,
46904                                                 vk::Bool32 bresenhamLines_ = 0,
46905                                                 vk::Bool32 smoothLines_ = 0,
46906                                                 vk::Bool32 stippledRectangularLines_ = 0,
46907                                                 vk::Bool32 stippledBresenhamLines_ = 0,
46908                                                 vk::Bool32 stippledSmoothLines_ = 0 )
46909       : layout::PhysicalDeviceLineRasterizationFeaturesEXT( rectangularLines_, bresenhamLines_, smoothLines_, stippledRectangularLines_, stippledBresenhamLines_, stippledSmoothLines_ )
46910     {}
46911 
PhysicalDeviceLineRasterizationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46912     PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs )
46913       : layout::PhysicalDeviceLineRasterizationFeaturesEXT( rhs )
46914     {}
46915 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46916     PhysicalDeviceLineRasterizationFeaturesEXT& operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs )
46917     {
46918       *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(this) = rhs;
46919       return *this;
46920     }
46921 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46922     PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ )
46923     {
46924       pNext = pNext_;
46925       return *this;
46926     }
46927 
setRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46928     PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( vk::Bool32 rectangularLines_ )
46929     {
46930       rectangularLines = rectangularLines_;
46931       return *this;
46932     }
46933 
setBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46934     PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( vk::Bool32 bresenhamLines_ )
46935     {
46936       bresenhamLines = bresenhamLines_;
46937       return *this;
46938     }
46939 
setSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46940     PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( vk::Bool32 smoothLines_ )
46941     {
46942       smoothLines = smoothLines_;
46943       return *this;
46944     }
46945 
setStippledRectangularLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46946     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( vk::Bool32 stippledRectangularLines_ )
46947     {
46948       stippledRectangularLines = stippledRectangularLines_;
46949       return *this;
46950     }
46951 
setStippledBresenhamLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46952     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( vk::Bool32 stippledBresenhamLines_ )
46953     {
46954       stippledBresenhamLines = stippledBresenhamLines_;
46955       return *this;
46956     }
46957 
setStippledSmoothLinesVULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46958     PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( vk::Bool32 stippledSmoothLines_ )
46959     {
46960       stippledSmoothLines = stippledSmoothLines_;
46961       return *this;
46962     }
46963 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46964     operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const
46965     {
46966       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
46967     }
46968 
operator VkPhysicalDeviceLineRasterizationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46969     operator VkPhysicalDeviceLineRasterizationFeaturesEXT &()
46970     {
46971       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>( this );
46972     }
46973 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46974     bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const
46975     {
46976       return ( sType == rhs.sType )
46977           && ( pNext == rhs.pNext )
46978           && ( rectangularLines == rhs.rectangularLines )
46979           && ( bresenhamLines == rhs.bresenhamLines )
46980           && ( smoothLines == rhs.smoothLines )
46981           && ( stippledRectangularLines == rhs.stippledRectangularLines )
46982           && ( stippledBresenhamLines == rhs.stippledBresenhamLines )
46983           && ( stippledSmoothLines == rhs.stippledSmoothLines );
46984     }
46985 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT46986     bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const
46987     {
46988       return !operator==( rhs );
46989     }
46990 
46991   private:
46992     using layout::PhysicalDeviceLineRasterizationFeaturesEXT::sType;
46993   };
46994   static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" );
46995   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
46996 
46997   namespace layout
46998   {
46999     struct PhysicalDeviceLineRasterizationPropertiesEXT
47000     {
47001     protected:
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationPropertiesEXT47002       PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = 0 )
47003         : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
47004       {}
47005 
PhysicalDeviceLineRasterizationPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationPropertiesEXT47006       PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs )
47007       {
47008         *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(this) = rhs;
47009       }
47010 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceLineRasterizationPropertiesEXT47011       PhysicalDeviceLineRasterizationPropertiesEXT& operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs )
47012       {
47013         *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(this) = rhs;
47014         return *this;
47015       }
47016 
47017     public:
47018       vk::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
47019       void* pNext = nullptr;
47020       uint32_t lineSubPixelPrecisionBits;
47021     };
47022     static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "layout struct and wrapper have different size!" );
47023   }
47024 
47025   struct PhysicalDeviceLineRasterizationPropertiesEXT : public layout::PhysicalDeviceLineRasterizationPropertiesEXT
47026   {
operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT47027     operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const
47028     {
47029       return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
47030     }
47031 
operator VkPhysicalDeviceLineRasterizationPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT47032     operator VkPhysicalDeviceLineRasterizationPropertiesEXT &()
47033     {
47034       return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>( this );
47035     }
47036 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT47037     bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const
47038     {
47039       return ( sType == rhs.sType )
47040           && ( pNext == rhs.pNext )
47041           && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
47042     }
47043 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT47044     bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const
47045     {
47046       return !operator==( rhs );
47047     }
47048 
47049   private:
47050     using layout::PhysicalDeviceLineRasterizationPropertiesEXT::sType;
47051   };
47052   static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
47053   static_assert( std::is_standard_layout<PhysicalDeviceLineRasterizationPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
47054 
47055   namespace layout
47056   {
47057     struct PhysicalDeviceMaintenance3Properties
47058     {
47059     protected:
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMaintenance3Properties47060       PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = 0,
47061                                             vk::DeviceSize maxMemoryAllocationSize_ = 0 )
47062         : maxPerSetDescriptors( maxPerSetDescriptors_ )
47063         , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
47064       {}
47065 
PhysicalDeviceMaintenance3PropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMaintenance3Properties47066       PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs )
47067       {
47068         *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(this) = rhs;
47069       }
47070 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMaintenance3Properties47071       PhysicalDeviceMaintenance3Properties& operator=( VkPhysicalDeviceMaintenance3Properties const & rhs )
47072       {
47073         *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(this) = rhs;
47074         return *this;
47075       }
47076 
47077     public:
47078       vk::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
47079       void* pNext = nullptr;
47080       uint32_t maxPerSetDescriptors;
47081       vk::DeviceSize maxMemoryAllocationSize;
47082     };
47083     static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "layout struct and wrapper have different size!" );
47084   }
47085 
47086   struct PhysicalDeviceMaintenance3Properties : public layout::PhysicalDeviceMaintenance3Properties
47087   {
operator VkPhysicalDeviceMaintenance3Properties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties47088     operator VkPhysicalDeviceMaintenance3Properties const&() const
47089     {
47090       return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
47091     }
47092 
operator VkPhysicalDeviceMaintenance3Properties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties47093     operator VkPhysicalDeviceMaintenance3Properties &()
47094     {
47095       return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
47096     }
47097 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties47098     bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const
47099     {
47100       return ( sType == rhs.sType )
47101           && ( pNext == rhs.pNext )
47102           && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
47103           && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
47104     }
47105 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties47106     bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const
47107     {
47108       return !operator==( rhs );
47109     }
47110 
47111   private:
47112     using layout::PhysicalDeviceMaintenance3Properties::sType;
47113   };
47114   static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
47115   static_assert( std::is_standard_layout<PhysicalDeviceMaintenance3Properties>::value, "struct wrapper is not a standard layout!" );
47116 
47117   namespace layout
47118   {
47119     struct PhysicalDeviceMemoryBudgetPropertiesEXT
47120     {
47121     protected:
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryBudgetPropertiesEXT47122       PhysicalDeviceMemoryBudgetPropertiesEXT( std::array<vk::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapBudget_ = { { 0 } },
47123                                                std::array<vk::DeviceSize,VK_MAX_MEMORY_HEAPS> const& heapUsage_ = { { 0 } } )
47124       {
47125         memcpy( &heapBudget, heapBudget_.data(), VK_MAX_MEMORY_HEAPS * sizeof( vk::DeviceSize ) );
47126         memcpy( &heapUsage, heapUsage_.data(), VK_MAX_MEMORY_HEAPS * sizeof( vk::DeviceSize ) );
47127 
47128       }
47129 
PhysicalDeviceMemoryBudgetPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryBudgetPropertiesEXT47130       PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs )
47131       {
47132         *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(this) = rhs;
47133       }
47134 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryBudgetPropertiesEXT47135       PhysicalDeviceMemoryBudgetPropertiesEXT& operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs )
47136       {
47137         *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(this) = rhs;
47138         return *this;
47139       }
47140 
47141     public:
47142       vk::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
47143       void* pNext = nullptr;
47144       vk::DeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
47145       vk::DeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
47146     };
47147     static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "layout struct and wrapper have different size!" );
47148   }
47149 
47150   struct PhysicalDeviceMemoryBudgetPropertiesEXT : public layout::PhysicalDeviceMemoryBudgetPropertiesEXT
47151   {
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT47152     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const
47153     {
47154       return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
47155     }
47156 
operator VkPhysicalDeviceMemoryBudgetPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT47157     operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &()
47158     {
47159       return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
47160     }
47161 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT47162     bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const
47163     {
47164       return ( sType == rhs.sType )
47165           && ( pNext == rhs.pNext )
47166           && ( memcmp( heapBudget, rhs.heapBudget, VK_MAX_MEMORY_HEAPS * sizeof( vk::DeviceSize ) ) == 0 )
47167           && ( memcmp( heapUsage, rhs.heapUsage, VK_MAX_MEMORY_HEAPS * sizeof( vk::DeviceSize ) ) == 0 );
47168     }
47169 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT47170     bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const
47171     {
47172       return !operator==( rhs );
47173     }
47174 
47175   private:
47176     using layout::PhysicalDeviceMemoryBudgetPropertiesEXT::sType;
47177   };
47178   static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
47179   static_assert( std::is_standard_layout<PhysicalDeviceMemoryBudgetPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
47180 
47181   namespace layout
47182   {
47183     struct PhysicalDeviceMemoryPriorityFeaturesEXT
47184     {
47185     protected:
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryPriorityFeaturesEXT47186       PhysicalDeviceMemoryPriorityFeaturesEXT( vk::Bool32 memoryPriority_ = 0 )
47187         : memoryPriority( memoryPriority_ )
47188       {}
47189 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryPriorityFeaturesEXT47190       PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
47191       {
47192         *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(this) = rhs;
47193       }
47194 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryPriorityFeaturesEXT47195       PhysicalDeviceMemoryPriorityFeaturesEXT& operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
47196       {
47197         *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(this) = rhs;
47198         return *this;
47199       }
47200 
47201     public:
47202       vk::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
47203       void* pNext = nullptr;
47204       vk::Bool32 memoryPriority;
47205     };
47206     static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "layout struct and wrapper have different size!" );
47207   }
47208 
47209   struct PhysicalDeviceMemoryPriorityFeaturesEXT : public layout::PhysicalDeviceMemoryPriorityFeaturesEXT
47210   {
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47211     PhysicalDeviceMemoryPriorityFeaturesEXT( vk::Bool32 memoryPriority_ = 0 )
47212       : layout::PhysicalDeviceMemoryPriorityFeaturesEXT( memoryPriority_ )
47213     {}
47214 
PhysicalDeviceMemoryPriorityFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47215     PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
47216       : layout::PhysicalDeviceMemoryPriorityFeaturesEXT( rhs )
47217     {}
47218 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47219     PhysicalDeviceMemoryPriorityFeaturesEXT& operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
47220     {
47221       *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(this) = rhs;
47222       return *this;
47223     }
47224 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47225     PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ )
47226     {
47227       pNext = pNext_;
47228       return *this;
47229     }
47230 
setMemoryPriorityVULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47231     PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( vk::Bool32 memoryPriority_ )
47232     {
47233       memoryPriority = memoryPriority_;
47234       return *this;
47235     }
47236 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47237     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const
47238     {
47239       return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
47240     }
47241 
operator VkPhysicalDeviceMemoryPriorityFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47242     operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &()
47243     {
47244       return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
47245     }
47246 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47247     bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const
47248     {
47249       return ( sType == rhs.sType )
47250           && ( pNext == rhs.pNext )
47251           && ( memoryPriority == rhs.memoryPriority );
47252     }
47253 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT47254     bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const
47255     {
47256       return !operator==( rhs );
47257     }
47258 
47259   private:
47260     using layout::PhysicalDeviceMemoryPriorityFeaturesEXT::sType;
47261   };
47262   static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
47263   static_assert( std::is_standard_layout<PhysicalDeviceMemoryPriorityFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
47264 
47265   struct PhysicalDeviceMemoryProperties
47266   {
operator VkPhysicalDeviceMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties47267     operator VkPhysicalDeviceMemoryProperties const&() const
47268     {
47269       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
47270     }
47271 
operator VkPhysicalDeviceMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties47272     operator VkPhysicalDeviceMemoryProperties &()
47273     {
47274       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
47275     }
47276 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties47277     bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const
47278     {
47279       return ( memoryTypeCount == rhs.memoryTypeCount )
47280           && ( memcmp( memoryTypes, rhs.memoryTypes, VK_MAX_MEMORY_TYPES * sizeof( vk::MemoryType ) ) == 0 )
47281           && ( memoryHeapCount == rhs.memoryHeapCount )
47282           && ( memcmp( memoryHeaps, rhs.memoryHeaps, VK_MAX_MEMORY_HEAPS * sizeof( vk::MemoryHeap ) ) == 0 );
47283     }
47284 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties47285     bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const
47286     {
47287       return !operator==( rhs );
47288     }
47289 
47290   public:
47291     uint32_t memoryTypeCount;
47292     vk::MemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
47293     uint32_t memoryHeapCount;
47294     vk::MemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
47295   };
47296   static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
47297   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties>::value, "struct wrapper is not a standard layout!" );
47298 
47299   namespace layout
47300   {
47301     struct PhysicalDeviceMemoryProperties2
47302     {
47303     protected:
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryProperties247304       PhysicalDeviceMemoryProperties2( vk::PhysicalDeviceMemoryProperties memoryProperties_ = vk::PhysicalDeviceMemoryProperties() )
47305         : memoryProperties( memoryProperties_ )
47306       {}
47307 
PhysicalDeviceMemoryProperties2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryProperties247308       PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs )
47309       {
47310         *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>(this) = rhs;
47311       }
47312 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMemoryProperties247313       PhysicalDeviceMemoryProperties2& operator=( VkPhysicalDeviceMemoryProperties2 const & rhs )
47314       {
47315         *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>(this) = rhs;
47316         return *this;
47317       }
47318 
47319     public:
47320       vk::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
47321       void* pNext = nullptr;
47322       vk::PhysicalDeviceMemoryProperties memoryProperties;
47323     };
47324     static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "layout struct and wrapper have different size!" );
47325   }
47326 
47327   struct PhysicalDeviceMemoryProperties2 : public layout::PhysicalDeviceMemoryProperties2
47328   {
operator VkPhysicalDeviceMemoryProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties247329     operator VkPhysicalDeviceMemoryProperties2 const&() const
47330     {
47331       return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
47332     }
47333 
operator VkPhysicalDeviceMemoryProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties247334     operator VkPhysicalDeviceMemoryProperties2 &()
47335     {
47336       return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
47337     }
47338 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties247339     bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const
47340     {
47341       return ( sType == rhs.sType )
47342           && ( pNext == rhs.pNext )
47343           && ( memoryProperties == rhs.memoryProperties );
47344     }
47345 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties247346     bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const
47347     {
47348       return !operator==( rhs );
47349     }
47350 
47351   private:
47352     using layout::PhysicalDeviceMemoryProperties2::sType;
47353   };
47354   static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
47355   static_assert( std::is_standard_layout<PhysicalDeviceMemoryProperties2>::value, "struct wrapper is not a standard layout!" );
47356 
47357   namespace layout
47358   {
47359     struct PhysicalDeviceMeshShaderFeaturesNV
47360     {
47361     protected:
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderFeaturesNV47362       PhysicalDeviceMeshShaderFeaturesNV( vk::Bool32 taskShader_ = 0,
47363                                           vk::Bool32 meshShader_ = 0 )
47364         : taskShader( taskShader_ )
47365         , meshShader( meshShader_ )
47366       {}
47367 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderFeaturesNV47368       PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
47369       {
47370         *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this) = rhs;
47371       }
47372 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderFeaturesNV47373       PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
47374       {
47375         *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this) = rhs;
47376         return *this;
47377       }
47378 
47379     public:
47380       vk::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
47381       void* pNext = nullptr;
47382       vk::Bool32 taskShader;
47383       vk::Bool32 meshShader;
47384     };
47385     static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "layout struct and wrapper have different size!" );
47386   }
47387 
47388   struct PhysicalDeviceMeshShaderFeaturesNV : public layout::PhysicalDeviceMeshShaderFeaturesNV
47389   {
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47390     PhysicalDeviceMeshShaderFeaturesNV( vk::Bool32 taskShader_ = 0,
47391                                         vk::Bool32 meshShader_ = 0 )
47392       : layout::PhysicalDeviceMeshShaderFeaturesNV( taskShader_, meshShader_ )
47393     {}
47394 
PhysicalDeviceMeshShaderFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47395     PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
47396       : layout::PhysicalDeviceMeshShaderFeaturesNV( rhs )
47397     {}
47398 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47399     PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
47400     {
47401       *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this) = rhs;
47402       return *this;
47403     }
47404 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47405     PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ )
47406     {
47407       pNext = pNext_;
47408       return *this;
47409     }
47410 
setTaskShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47411     PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( vk::Bool32 taskShader_ )
47412     {
47413       taskShader = taskShader_;
47414       return *this;
47415     }
47416 
setMeshShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47417     PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( vk::Bool32 meshShader_ )
47418     {
47419       meshShader = meshShader_;
47420       return *this;
47421     }
47422 
operator VkPhysicalDeviceMeshShaderFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47423     operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const
47424     {
47425       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
47426     }
47427 
operator VkPhysicalDeviceMeshShaderFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47428     operator VkPhysicalDeviceMeshShaderFeaturesNV &()
47429     {
47430       return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
47431     }
47432 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47433     bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const
47434     {
47435       return ( sType == rhs.sType )
47436           && ( pNext == rhs.pNext )
47437           && ( taskShader == rhs.taskShader )
47438           && ( meshShader == rhs.meshShader );
47439     }
47440 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV47441     bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const
47442     {
47443       return !operator==( rhs );
47444     }
47445 
47446   private:
47447     using layout::PhysicalDeviceMeshShaderFeaturesNV::sType;
47448   };
47449   static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
47450   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderFeaturesNV>::value, "struct wrapper is not a standard layout!" );
47451 
47452   namespace layout
47453   {
47454     struct PhysicalDeviceMeshShaderPropertiesNV
47455     {
47456     protected:
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderPropertiesNV47457       PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = 0,
47458                                             uint32_t maxTaskWorkGroupInvocations_ = 0,
47459                                             std::array<uint32_t,3> const& maxTaskWorkGroupSize_ = { { 0 } },
47460                                             uint32_t maxTaskTotalMemorySize_ = 0,
47461                                             uint32_t maxTaskOutputCount_ = 0,
47462                                             uint32_t maxMeshWorkGroupInvocations_ = 0,
47463                                             std::array<uint32_t,3> const& maxMeshWorkGroupSize_ = { { 0 } },
47464                                             uint32_t maxMeshTotalMemorySize_ = 0,
47465                                             uint32_t maxMeshOutputVertices_ = 0,
47466                                             uint32_t maxMeshOutputPrimitives_ = 0,
47467                                             uint32_t maxMeshMultiviewViewCount_ = 0,
47468                                             uint32_t meshOutputPerVertexGranularity_ = 0,
47469                                             uint32_t meshOutputPerPrimitiveGranularity_ = 0 )
47470         : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ )
47471         , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
47472         , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ )
47473         , maxTaskOutputCount( maxTaskOutputCount_ )
47474         , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
47475         , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ )
47476         , maxMeshOutputVertices( maxMeshOutputVertices_ )
47477         , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
47478         , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
47479         , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
47480         , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
47481       {
47482         memcpy( &maxTaskWorkGroupSize, maxTaskWorkGroupSize_.data(), 3 * sizeof( uint32_t ) );
47483         memcpy( &maxMeshWorkGroupSize, maxMeshWorkGroupSize_.data(), 3 * sizeof( uint32_t ) );
47484 
47485       }
47486 
PhysicalDeviceMeshShaderPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderPropertiesNV47487       PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs )
47488       {
47489         *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(this) = rhs;
47490       }
47491 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMeshShaderPropertiesNV47492       PhysicalDeviceMeshShaderPropertiesNV& operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs )
47493       {
47494         *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(this) = rhs;
47495         return *this;
47496       }
47497 
47498     public:
47499       vk::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
47500       void* pNext = nullptr;
47501       uint32_t maxDrawMeshTasksCount;
47502       uint32_t maxTaskWorkGroupInvocations;
47503       uint32_t maxTaskWorkGroupSize[3];
47504       uint32_t maxTaskTotalMemorySize;
47505       uint32_t maxTaskOutputCount;
47506       uint32_t maxMeshWorkGroupInvocations;
47507       uint32_t maxMeshWorkGroupSize[3];
47508       uint32_t maxMeshTotalMemorySize;
47509       uint32_t maxMeshOutputVertices;
47510       uint32_t maxMeshOutputPrimitives;
47511       uint32_t maxMeshMultiviewViewCount;
47512       uint32_t meshOutputPerVertexGranularity;
47513       uint32_t meshOutputPerPrimitiveGranularity;
47514     };
47515     static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "layout struct and wrapper have different size!" );
47516   }
47517 
47518   struct PhysicalDeviceMeshShaderPropertiesNV : public layout::PhysicalDeviceMeshShaderPropertiesNV
47519   {
operator VkPhysicalDeviceMeshShaderPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV47520     operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const
47521     {
47522       return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
47523     }
47524 
operator VkPhysicalDeviceMeshShaderPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV47525     operator VkPhysicalDeviceMeshShaderPropertiesNV &()
47526     {
47527       return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
47528     }
47529 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV47530     bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const
47531     {
47532       return ( sType == rhs.sType )
47533           && ( pNext == rhs.pNext )
47534           && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
47535           && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
47536           && ( memcmp( maxTaskWorkGroupSize, rhs.maxTaskWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
47537           && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
47538           && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
47539           && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
47540           && ( memcmp( maxMeshWorkGroupSize, rhs.maxMeshWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
47541           && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
47542           && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
47543           && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
47544           && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
47545           && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
47546           && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
47547     }
47548 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV47549     bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const
47550     {
47551       return !operator==( rhs );
47552     }
47553 
47554   private:
47555     using layout::PhysicalDeviceMeshShaderPropertiesNV::sType;
47556   };
47557   static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
47558   static_assert( std::is_standard_layout<PhysicalDeviceMeshShaderPropertiesNV>::value, "struct wrapper is not a standard layout!" );
47559 
47560   namespace layout
47561   {
47562     struct PhysicalDeviceMultiviewFeatures
47563     {
47564     protected:
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewFeatures47565       PhysicalDeviceMultiviewFeatures( vk::Bool32 multiview_ = 0,
47566                                        vk::Bool32 multiviewGeometryShader_ = 0,
47567                                        vk::Bool32 multiviewTessellationShader_ = 0 )
47568         : multiview( multiview_ )
47569         , multiviewGeometryShader( multiviewGeometryShader_ )
47570         , multiviewTessellationShader( multiviewTessellationShader_ )
47571       {}
47572 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewFeatures47573       PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs )
47574       {
47575         *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this) = rhs;
47576       }
47577 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewFeatures47578       PhysicalDeviceMultiviewFeatures& operator=( VkPhysicalDeviceMultiviewFeatures const & rhs )
47579       {
47580         *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this) = rhs;
47581         return *this;
47582       }
47583 
47584     public:
47585       vk::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
47586       void* pNext = nullptr;
47587       vk::Bool32 multiview;
47588       vk::Bool32 multiviewGeometryShader;
47589       vk::Bool32 multiviewTessellationShader;
47590     };
47591     static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "layout struct and wrapper have different size!" );
47592   }
47593 
47594   struct PhysicalDeviceMultiviewFeatures : public layout::PhysicalDeviceMultiviewFeatures
47595   {
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47596     PhysicalDeviceMultiviewFeatures( vk::Bool32 multiview_ = 0,
47597                                      vk::Bool32 multiviewGeometryShader_ = 0,
47598                                      vk::Bool32 multiviewTessellationShader_ = 0 )
47599       : layout::PhysicalDeviceMultiviewFeatures( multiview_, multiviewGeometryShader_, multiviewTessellationShader_ )
47600     {}
47601 
PhysicalDeviceMultiviewFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47602     PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs )
47603       : layout::PhysicalDeviceMultiviewFeatures( rhs )
47604     {}
47605 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47606     PhysicalDeviceMultiviewFeatures& operator=( VkPhysicalDeviceMultiviewFeatures const & rhs )
47607     {
47608       *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this) = rhs;
47609       return *this;
47610     }
47611 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47612     PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ )
47613     {
47614       pNext = pNext_;
47615       return *this;
47616     }
47617 
setMultiviewVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47618     PhysicalDeviceMultiviewFeatures & setMultiview( vk::Bool32 multiview_ )
47619     {
47620       multiview = multiview_;
47621       return *this;
47622     }
47623 
setMultiviewGeometryShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47624     PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( vk::Bool32 multiviewGeometryShader_ )
47625     {
47626       multiviewGeometryShader = multiviewGeometryShader_;
47627       return *this;
47628     }
47629 
setMultiviewTessellationShaderVULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47630     PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( vk::Bool32 multiviewTessellationShader_ )
47631     {
47632       multiviewTessellationShader = multiviewTessellationShader_;
47633       return *this;
47634     }
47635 
operator VkPhysicalDeviceMultiviewFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47636     operator VkPhysicalDeviceMultiviewFeatures const&() const
47637     {
47638       return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
47639     }
47640 
operator VkPhysicalDeviceMultiviewFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47641     operator VkPhysicalDeviceMultiviewFeatures &()
47642     {
47643       return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
47644     }
47645 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47646     bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const
47647     {
47648       return ( sType == rhs.sType )
47649           && ( pNext == rhs.pNext )
47650           && ( multiview == rhs.multiview )
47651           && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
47652           && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
47653     }
47654 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures47655     bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const
47656     {
47657       return !operator==( rhs );
47658     }
47659 
47660   private:
47661     using layout::PhysicalDeviceMultiviewFeatures::sType;
47662   };
47663   static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
47664   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewFeatures>::value, "struct wrapper is not a standard layout!" );
47665 
47666   namespace layout
47667   {
47668     struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
47669     {
47670     protected:
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47671       PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( vk::Bool32 perViewPositionAllComponents_ = 0 )
47672         : perViewPositionAllComponents( perViewPositionAllComponents_ )
47673       {}
47674 
PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47675       PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs )
47676       {
47677         *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(this) = rhs;
47678       }
47679 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47680       PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs )
47681       {
47682         *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(this) = rhs;
47683         return *this;
47684       }
47685 
47686     public:
47687       vk::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
47688       void* pNext = nullptr;
47689       vk::Bool32 perViewPositionAllComponents;
47690     };
47691     static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "layout struct and wrapper have different size!" );
47692   }
47693 
47694   struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : public layout::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
47695   {
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47696     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const
47697     {
47698       return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
47699     }
47700 
operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47701     operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &()
47702     {
47703       return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
47704     }
47705 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47706     bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const
47707     {
47708       return ( sType == rhs.sType )
47709           && ( pNext == rhs.pNext )
47710           && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
47711     }
47712 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX47713     bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const
47714     {
47715       return !operator==( rhs );
47716     }
47717 
47718   private:
47719     using layout::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX::sType;
47720   };
47721   static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
47722   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>::value, "struct wrapper is not a standard layout!" );
47723 
47724   namespace layout
47725   {
47726     struct PhysicalDeviceMultiviewProperties
47727     {
47728     protected:
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewProperties47729       PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = 0,
47730                                          uint32_t maxMultiviewInstanceIndex_ = 0 )
47731         : maxMultiviewViewCount( maxMultiviewViewCount_ )
47732         , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
47733       {}
47734 
PhysicalDeviceMultiviewPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewProperties47735       PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs )
47736       {
47737         *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(this) = rhs;
47738       }
47739 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceMultiviewProperties47740       PhysicalDeviceMultiviewProperties& operator=( VkPhysicalDeviceMultiviewProperties const & rhs )
47741       {
47742         *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(this) = rhs;
47743         return *this;
47744       }
47745 
47746     public:
47747       vk::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
47748       void* pNext = nullptr;
47749       uint32_t maxMultiviewViewCount;
47750       uint32_t maxMultiviewInstanceIndex;
47751     };
47752     static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "layout struct and wrapper have different size!" );
47753   }
47754 
47755   struct PhysicalDeviceMultiviewProperties : public layout::PhysicalDeviceMultiviewProperties
47756   {
operator VkPhysicalDeviceMultiviewProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties47757     operator VkPhysicalDeviceMultiviewProperties const&() const
47758     {
47759       return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
47760     }
47761 
operator VkPhysicalDeviceMultiviewProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties47762     operator VkPhysicalDeviceMultiviewProperties &()
47763     {
47764       return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
47765     }
47766 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties47767     bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const
47768     {
47769       return ( sType == rhs.sType )
47770           && ( pNext == rhs.pNext )
47771           && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
47772           && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
47773     }
47774 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties47775     bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const
47776     {
47777       return !operator==( rhs );
47778     }
47779 
47780   private:
47781     using layout::PhysicalDeviceMultiviewProperties::sType;
47782   };
47783   static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
47784   static_assert( std::is_standard_layout<PhysicalDeviceMultiviewProperties>::value, "struct wrapper is not a standard layout!" );
47785 
47786   namespace layout
47787   {
47788     struct PhysicalDevicePCIBusInfoPropertiesEXT
47789     {
47790     protected:
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePCIBusInfoPropertiesEXT47791       PhysicalDevicePCIBusInfoPropertiesEXT( uint32_t pciDomain_ = 0,
47792                                              uint32_t pciBus_ = 0,
47793                                              uint32_t pciDevice_ = 0,
47794                                              uint32_t pciFunction_ = 0 )
47795         : pciDomain( pciDomain_ )
47796         , pciBus( pciBus_ )
47797         , pciDevice( pciDevice_ )
47798         , pciFunction( pciFunction_ )
47799       {}
47800 
PhysicalDevicePCIBusInfoPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePCIBusInfoPropertiesEXT47801       PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs )
47802       {
47803         *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(this) = rhs;
47804       }
47805 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevicePCIBusInfoPropertiesEXT47806       PhysicalDevicePCIBusInfoPropertiesEXT& operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs )
47807       {
47808         *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(this) = rhs;
47809         return *this;
47810       }
47811 
47812     public:
47813       vk::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
47814       void* pNext = nullptr;
47815       uint32_t pciDomain;
47816       uint32_t pciBus;
47817       uint32_t pciDevice;
47818       uint32_t pciFunction;
47819     };
47820     static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "layout struct and wrapper have different size!" );
47821   }
47822 
47823   struct PhysicalDevicePCIBusInfoPropertiesEXT : public layout::PhysicalDevicePCIBusInfoPropertiesEXT
47824   {
operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT47825     operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const
47826     {
47827       return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
47828     }
47829 
operator VkPhysicalDevicePCIBusInfoPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT47830     operator VkPhysicalDevicePCIBusInfoPropertiesEXT &()
47831     {
47832       return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
47833     }
47834 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT47835     bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const
47836     {
47837       return ( sType == rhs.sType )
47838           && ( pNext == rhs.pNext )
47839           && ( pciDomain == rhs.pciDomain )
47840           && ( pciBus == rhs.pciBus )
47841           && ( pciDevice == rhs.pciDevice )
47842           && ( pciFunction == rhs.pciFunction );
47843     }
47844 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT47845     bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const
47846     {
47847       return !operator==( rhs );
47848     }
47849 
47850   private:
47851     using layout::PhysicalDevicePCIBusInfoPropertiesEXT::sType;
47852   };
47853   static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
47854   static_assert( std::is_standard_layout<PhysicalDevicePCIBusInfoPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
47855 
47856   namespace layout
47857   {
47858     struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
47859     {
47860     protected:
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47861       PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( vk::Bool32 pipelineExecutableInfo_ = 0 )
47862         : pipelineExecutableInfo( pipelineExecutableInfo_ )
47863       {}
47864 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47865       PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs )
47866       {
47867         *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(this) = rhs;
47868       }
47869 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47870       PhysicalDevicePipelineExecutablePropertiesFeaturesKHR& operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs )
47871       {
47872         *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(this) = rhs;
47873         return *this;
47874       }
47875 
47876     public:
47877       vk::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
47878       void* pNext = nullptr;
47879       vk::Bool32 pipelineExecutableInfo;
47880     };
47881     static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "layout struct and wrapper have different size!" );
47882   }
47883 
47884   struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR : public layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
47885   {
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47886     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( vk::Bool32 pipelineExecutableInfo_ = 0 )
47887       : layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( pipelineExecutableInfo_ )
47888     {}
47889 
PhysicalDevicePipelineExecutablePropertiesFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47890     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs )
47891       : layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( rhs )
47892     {}
47893 
operator =VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47894     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR& operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs )
47895     {
47896       *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(this) = rhs;
47897       return *this;
47898     }
47899 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47900     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ )
47901     {
47902       pNext = pNext_;
47903       return *this;
47904     }
47905 
setPipelineExecutableInfoVULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47906     PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( vk::Bool32 pipelineExecutableInfo_ )
47907     {
47908       pipelineExecutableInfo = pipelineExecutableInfo_;
47909       return *this;
47910     }
47911 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47912     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const
47913     {
47914       return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
47915     }
47916 
operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47917     operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &()
47918     {
47919       return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>( this );
47920     }
47921 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47922     bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const
47923     {
47924       return ( sType == rhs.sType )
47925           && ( pNext == rhs.pNext )
47926           && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
47927     }
47928 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR47929     bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const
47930     {
47931       return !operator==( rhs );
47932     }
47933 
47934   private:
47935     using layout::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR::sType;
47936   };
47937   static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" );
47938   static_assert( std::is_standard_layout<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
47939 
47940   namespace layout
47941   {
47942     struct PhysicalDevicePointClippingProperties
47943     {
47944     protected:
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePointClippingProperties47945       PhysicalDevicePointClippingProperties( vk::PointClippingBehavior pointClippingBehavior_ = vk::PointClippingBehavior::eAllClipPlanes )
47946         : pointClippingBehavior( pointClippingBehavior_ )
47947       {}
47948 
PhysicalDevicePointClippingPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePointClippingProperties47949       PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs )
47950       {
47951         *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(this) = rhs;
47952       }
47953 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevicePointClippingProperties47954       PhysicalDevicePointClippingProperties& operator=( VkPhysicalDevicePointClippingProperties const & rhs )
47955       {
47956         *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(this) = rhs;
47957         return *this;
47958       }
47959 
47960     public:
47961       vk::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
47962       void* pNext = nullptr;
47963       vk::PointClippingBehavior pointClippingBehavior;
47964     };
47965     static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "layout struct and wrapper have different size!" );
47966   }
47967 
47968   struct PhysicalDevicePointClippingProperties : public layout::PhysicalDevicePointClippingProperties
47969   {
operator VkPhysicalDevicePointClippingProperties const&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties47970     operator VkPhysicalDevicePointClippingProperties const&() const
47971     {
47972       return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
47973     }
47974 
operator VkPhysicalDevicePointClippingProperties&VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties47975     operator VkPhysicalDevicePointClippingProperties &()
47976     {
47977       return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
47978     }
47979 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties47980     bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const
47981     {
47982       return ( sType == rhs.sType )
47983           && ( pNext == rhs.pNext )
47984           && ( pointClippingBehavior == rhs.pointClippingBehavior );
47985     }
47986 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties47987     bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const
47988     {
47989       return !operator==( rhs );
47990     }
47991 
47992   private:
47993     using layout::PhysicalDevicePointClippingProperties::sType;
47994   };
47995   static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
47996   static_assert( std::is_standard_layout<PhysicalDevicePointClippingProperties>::value, "struct wrapper is not a standard layout!" );
47997 
47998   struct PhysicalDeviceSparseProperties
47999   {
operator VkPhysicalDeviceSparseProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties48000     operator VkPhysicalDeviceSparseProperties const&() const
48001     {
48002       return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
48003     }
48004 
operator VkPhysicalDeviceSparseProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties48005     operator VkPhysicalDeviceSparseProperties &()
48006     {
48007       return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
48008     }
48009 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties48010     bool operator==( PhysicalDeviceSparseProperties const& rhs ) const
48011     {
48012       return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
48013           && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
48014           && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
48015           && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
48016           && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
48017     }
48018 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties48019     bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const
48020     {
48021       return !operator==( rhs );
48022     }
48023 
48024   public:
48025     vk::Bool32 residencyStandard2DBlockShape;
48026     vk::Bool32 residencyStandard2DMultisampleBlockShape;
48027     vk::Bool32 residencyStandard3DBlockShape;
48028     vk::Bool32 residencyAlignedMipSize;
48029     vk::Bool32 residencyNonResidentStrict;
48030   };
48031   static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
48032   static_assert( std::is_standard_layout<PhysicalDeviceSparseProperties>::value, "struct wrapper is not a standard layout!" );
48033 
48034   struct PhysicalDeviceProperties
48035   {
operator VkPhysicalDeviceProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties48036     operator VkPhysicalDeviceProperties const&() const
48037     {
48038       return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
48039     }
48040 
operator VkPhysicalDeviceProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties48041     operator VkPhysicalDeviceProperties &()
48042     {
48043       return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
48044     }
48045 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties48046     bool operator==( PhysicalDeviceProperties const& rhs ) const
48047     {
48048       return ( apiVersion == rhs.apiVersion )
48049           && ( driverVersion == rhs.driverVersion )
48050           && ( vendorID == rhs.vendorID )
48051           && ( deviceID == rhs.deviceID )
48052           && ( deviceType == rhs.deviceType )
48053           && ( memcmp( deviceName, rhs.deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof( char ) ) == 0 )
48054           && ( memcmp( pipelineCacheUUID, rhs.pipelineCacheUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
48055           && ( limits == rhs.limits )
48056           && ( sparseProperties == rhs.sparseProperties );
48057     }
48058 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties48059     bool operator!=( PhysicalDeviceProperties const& rhs ) const
48060     {
48061       return !operator==( rhs );
48062     }
48063 
48064   public:
48065     uint32_t apiVersion;
48066     uint32_t driverVersion;
48067     uint32_t vendorID;
48068     uint32_t deviceID;
48069     vk::PhysicalDeviceType deviceType;
48070     char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
48071     uint8_t pipelineCacheUUID[VK_UUID_SIZE];
48072     vk::PhysicalDeviceLimits limits;
48073     vk::PhysicalDeviceSparseProperties sparseProperties;
48074   };
48075   static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
48076   static_assert( std::is_standard_layout<PhysicalDeviceProperties>::value, "struct wrapper is not a standard layout!" );
48077 
48078   namespace layout
48079   {
48080     struct PhysicalDeviceProperties2
48081     {
48082     protected:
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProperties248083       PhysicalDeviceProperties2( vk::PhysicalDeviceProperties properties_ = vk::PhysicalDeviceProperties() )
48084         : properties( properties_ )
48085       {}
48086 
PhysicalDeviceProperties2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProperties248087       PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs )
48088       {
48089         *reinterpret_cast<VkPhysicalDeviceProperties2*>(this) = rhs;
48090       }
48091 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProperties248092       PhysicalDeviceProperties2& operator=( VkPhysicalDeviceProperties2 const & rhs )
48093       {
48094         *reinterpret_cast<VkPhysicalDeviceProperties2*>(this) = rhs;
48095         return *this;
48096       }
48097 
48098     public:
48099       vk::StructureType sType = StructureType::ePhysicalDeviceProperties2;
48100       void* pNext = nullptr;
48101       vk::PhysicalDeviceProperties properties;
48102     };
48103     static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "layout struct and wrapper have different size!" );
48104   }
48105 
48106   struct PhysicalDeviceProperties2 : public layout::PhysicalDeviceProperties2
48107   {
operator VkPhysicalDeviceProperties2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties248108     operator VkPhysicalDeviceProperties2 const&() const
48109     {
48110       return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
48111     }
48112 
operator VkPhysicalDeviceProperties2&VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties248113     operator VkPhysicalDeviceProperties2 &()
48114     {
48115       return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
48116     }
48117 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties248118     bool operator==( PhysicalDeviceProperties2 const& rhs ) const
48119     {
48120       return ( sType == rhs.sType )
48121           && ( pNext == rhs.pNext )
48122           && ( properties == rhs.properties );
48123     }
48124 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties248125     bool operator!=( PhysicalDeviceProperties2 const& rhs ) const
48126     {
48127       return !operator==( rhs );
48128     }
48129 
48130   private:
48131     using layout::PhysicalDeviceProperties2::sType;
48132   };
48133   static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
48134   static_assert( std::is_standard_layout<PhysicalDeviceProperties2>::value, "struct wrapper is not a standard layout!" );
48135 
48136   namespace layout
48137   {
48138     struct PhysicalDeviceProtectedMemoryFeatures
48139     {
48140     protected:
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryFeatures48141       PhysicalDeviceProtectedMemoryFeatures( vk::Bool32 protectedMemory_ = 0 )
48142         : protectedMemory( protectedMemory_ )
48143       {}
48144 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryFeatures48145       PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
48146       {
48147         *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this) = rhs;
48148       }
48149 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryFeatures48150       PhysicalDeviceProtectedMemoryFeatures& operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
48151       {
48152         *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this) = rhs;
48153         return *this;
48154       }
48155 
48156     public:
48157       vk::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
48158       void* pNext = nullptr;
48159       vk::Bool32 protectedMemory;
48160     };
48161     static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "layout struct and wrapper have different size!" );
48162   }
48163 
48164   struct PhysicalDeviceProtectedMemoryFeatures : public layout::PhysicalDeviceProtectedMemoryFeatures
48165   {
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48166     PhysicalDeviceProtectedMemoryFeatures( vk::Bool32 protectedMemory_ = 0 )
48167       : layout::PhysicalDeviceProtectedMemoryFeatures( protectedMemory_ )
48168     {}
48169 
PhysicalDeviceProtectedMemoryFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48170     PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
48171       : layout::PhysicalDeviceProtectedMemoryFeatures( rhs )
48172     {}
48173 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48174     PhysicalDeviceProtectedMemoryFeatures& operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
48175     {
48176       *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this) = rhs;
48177       return *this;
48178     }
48179 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48180     PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ )
48181     {
48182       pNext = pNext_;
48183       return *this;
48184     }
48185 
setProtectedMemoryVULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48186     PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( vk::Bool32 protectedMemory_ )
48187     {
48188       protectedMemory = protectedMemory_;
48189       return *this;
48190     }
48191 
operator VkPhysicalDeviceProtectedMemoryFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48192     operator VkPhysicalDeviceProtectedMemoryFeatures const&() const
48193     {
48194       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
48195     }
48196 
operator VkPhysicalDeviceProtectedMemoryFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48197     operator VkPhysicalDeviceProtectedMemoryFeatures &()
48198     {
48199       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
48200     }
48201 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48202     bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const
48203     {
48204       return ( sType == rhs.sType )
48205           && ( pNext == rhs.pNext )
48206           && ( protectedMemory == rhs.protectedMemory );
48207     }
48208 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures48209     bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const
48210     {
48211       return !operator==( rhs );
48212     }
48213 
48214   private:
48215     using layout::PhysicalDeviceProtectedMemoryFeatures::sType;
48216   };
48217   static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
48218   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryFeatures>::value, "struct wrapper is not a standard layout!" );
48219 
48220   namespace layout
48221   {
48222     struct PhysicalDeviceProtectedMemoryProperties
48223     {
48224     protected:
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryProperties48225       PhysicalDeviceProtectedMemoryProperties( vk::Bool32 protectedNoFault_ = 0 )
48226         : protectedNoFault( protectedNoFault_ )
48227       {}
48228 
PhysicalDeviceProtectedMemoryPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryProperties48229       PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs )
48230       {
48231         *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(this) = rhs;
48232       }
48233 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceProtectedMemoryProperties48234       PhysicalDeviceProtectedMemoryProperties& operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs )
48235       {
48236         *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(this) = rhs;
48237         return *this;
48238       }
48239 
48240     public:
48241       vk::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
48242       void* pNext = nullptr;
48243       vk::Bool32 protectedNoFault;
48244     };
48245     static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "layout struct and wrapper have different size!" );
48246   }
48247 
48248   struct PhysicalDeviceProtectedMemoryProperties : public layout::PhysicalDeviceProtectedMemoryProperties
48249   {
operator VkPhysicalDeviceProtectedMemoryProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties48250     operator VkPhysicalDeviceProtectedMemoryProperties const&() const
48251     {
48252       return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
48253     }
48254 
operator VkPhysicalDeviceProtectedMemoryProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties48255     operator VkPhysicalDeviceProtectedMemoryProperties &()
48256     {
48257       return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
48258     }
48259 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties48260     bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const
48261     {
48262       return ( sType == rhs.sType )
48263           && ( pNext == rhs.pNext )
48264           && ( protectedNoFault == rhs.protectedNoFault );
48265     }
48266 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties48267     bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const
48268     {
48269       return !operator==( rhs );
48270     }
48271 
48272   private:
48273     using layout::PhysicalDeviceProtectedMemoryProperties::sType;
48274   };
48275   static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
48276   static_assert( std::is_standard_layout<PhysicalDeviceProtectedMemoryProperties>::value, "struct wrapper is not a standard layout!" );
48277 
48278   namespace layout
48279   {
48280     struct PhysicalDevicePushDescriptorPropertiesKHR
48281     {
48282     protected:
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePushDescriptorPropertiesKHR48283       PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = 0 )
48284         : maxPushDescriptors( maxPushDescriptors_ )
48285       {}
48286 
PhysicalDevicePushDescriptorPropertiesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDevicePushDescriptorPropertiesKHR48287       PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs )
48288       {
48289         *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(this) = rhs;
48290       }
48291 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDevicePushDescriptorPropertiesKHR48292       PhysicalDevicePushDescriptorPropertiesKHR& operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs )
48293       {
48294         *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(this) = rhs;
48295         return *this;
48296       }
48297 
48298     public:
48299       vk::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
48300       void* pNext = nullptr;
48301       uint32_t maxPushDescriptors;
48302     };
48303     static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "layout struct and wrapper have different size!" );
48304   }
48305 
48306   struct PhysicalDevicePushDescriptorPropertiesKHR : public layout::PhysicalDevicePushDescriptorPropertiesKHR
48307   {
operator VkPhysicalDevicePushDescriptorPropertiesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR48308     operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const
48309     {
48310       return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
48311     }
48312 
operator VkPhysicalDevicePushDescriptorPropertiesKHR&VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR48313     operator VkPhysicalDevicePushDescriptorPropertiesKHR &()
48314     {
48315       return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
48316     }
48317 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR48318     bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const
48319     {
48320       return ( sType == rhs.sType )
48321           && ( pNext == rhs.pNext )
48322           && ( maxPushDescriptors == rhs.maxPushDescriptors );
48323     }
48324 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR48325     bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const
48326     {
48327       return !operator==( rhs );
48328     }
48329 
48330   private:
48331     using layout::PhysicalDevicePushDescriptorPropertiesKHR::sType;
48332   };
48333   static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
48334   static_assert( std::is_standard_layout<PhysicalDevicePushDescriptorPropertiesKHR>::value, "struct wrapper is not a standard layout!" );
48335 
48336   namespace layout
48337   {
48338     struct PhysicalDeviceRayTracingPropertiesNV
48339     {
48340     protected:
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRayTracingPropertiesNV48341       PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = 0,
48342                                             uint32_t maxRecursionDepth_ = 0,
48343                                             uint32_t maxShaderGroupStride_ = 0,
48344                                             uint32_t shaderGroupBaseAlignment_ = 0,
48345                                             uint64_t maxGeometryCount_ = 0,
48346                                             uint64_t maxInstanceCount_ = 0,
48347                                             uint64_t maxTriangleCount_ = 0,
48348                                             uint32_t maxDescriptorSetAccelerationStructures_ = 0 )
48349         : shaderGroupHandleSize( shaderGroupHandleSize_ )
48350         , maxRecursionDepth( maxRecursionDepth_ )
48351         , maxShaderGroupStride( maxShaderGroupStride_ )
48352         , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
48353         , maxGeometryCount( maxGeometryCount_ )
48354         , maxInstanceCount( maxInstanceCount_ )
48355         , maxTriangleCount( maxTriangleCount_ )
48356         , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
48357       {}
48358 
PhysicalDeviceRayTracingPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRayTracingPropertiesNV48359       PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs )
48360       {
48361         *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(this) = rhs;
48362       }
48363 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRayTracingPropertiesNV48364       PhysicalDeviceRayTracingPropertiesNV& operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs )
48365       {
48366         *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(this) = rhs;
48367         return *this;
48368       }
48369 
48370     public:
48371       vk::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
48372       void* pNext = nullptr;
48373       uint32_t shaderGroupHandleSize;
48374       uint32_t maxRecursionDepth;
48375       uint32_t maxShaderGroupStride;
48376       uint32_t shaderGroupBaseAlignment;
48377       uint64_t maxGeometryCount;
48378       uint64_t maxInstanceCount;
48379       uint64_t maxTriangleCount;
48380       uint32_t maxDescriptorSetAccelerationStructures;
48381     };
48382     static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "layout struct and wrapper have different size!" );
48383   }
48384 
48385   struct PhysicalDeviceRayTracingPropertiesNV : public layout::PhysicalDeviceRayTracingPropertiesNV
48386   {
operator VkPhysicalDeviceRayTracingPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV48387     operator VkPhysicalDeviceRayTracingPropertiesNV const&() const
48388     {
48389       return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
48390     }
48391 
operator VkPhysicalDeviceRayTracingPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV48392     operator VkPhysicalDeviceRayTracingPropertiesNV &()
48393     {
48394       return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
48395     }
48396 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV48397     bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const
48398     {
48399       return ( sType == rhs.sType )
48400           && ( pNext == rhs.pNext )
48401           && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
48402           && ( maxRecursionDepth == rhs.maxRecursionDepth )
48403           && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
48404           && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
48405           && ( maxGeometryCount == rhs.maxGeometryCount )
48406           && ( maxInstanceCount == rhs.maxInstanceCount )
48407           && ( maxTriangleCount == rhs.maxTriangleCount )
48408           && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
48409     }
48410 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV48411     bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const
48412     {
48413       return !operator==( rhs );
48414     }
48415 
48416   private:
48417     using layout::PhysicalDeviceRayTracingPropertiesNV::sType;
48418   };
48419   static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
48420   static_assert( std::is_standard_layout<PhysicalDeviceRayTracingPropertiesNV>::value, "struct wrapper is not a standard layout!" );
48421 
48422   namespace layout
48423   {
48424     struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
48425     {
48426     protected:
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48427       PhysicalDeviceRepresentativeFragmentTestFeaturesNV( vk::Bool32 representativeFragmentTest_ = 0 )
48428         : representativeFragmentTest( representativeFragmentTest_ )
48429       {}
48430 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48431       PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
48432       {
48433         *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this) = rhs;
48434       }
48435 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48436       PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
48437       {
48438         *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this) = rhs;
48439         return *this;
48440       }
48441 
48442     public:
48443       vk::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
48444       void* pNext = nullptr;
48445       vk::Bool32 representativeFragmentTest;
48446     };
48447     static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "layout struct and wrapper have different size!" );
48448   }
48449 
48450   struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV : public layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV
48451   {
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48452     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( vk::Bool32 representativeFragmentTest_ = 0 )
48453       : layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV( representativeFragmentTest_ )
48454     {}
48455 
PhysicalDeviceRepresentativeFragmentTestFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48456     PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
48457       : layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV( rhs )
48458     {}
48459 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48460     PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
48461     {
48462       *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this) = rhs;
48463       return *this;
48464     }
48465 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48466     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ )
48467     {
48468       pNext = pNext_;
48469       return *this;
48470     }
48471 
setRepresentativeFragmentTestVULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48472     PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( vk::Bool32 representativeFragmentTest_ )
48473     {
48474       representativeFragmentTest = representativeFragmentTest_;
48475       return *this;
48476     }
48477 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48478     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const
48479     {
48480       return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
48481     }
48482 
operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48483     operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &()
48484     {
48485       return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
48486     }
48487 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48488     bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const
48489     {
48490       return ( sType == rhs.sType )
48491           && ( pNext == rhs.pNext )
48492           && ( representativeFragmentTest == rhs.representativeFragmentTest );
48493     }
48494 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV48495     bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const
48496     {
48497       return !operator==( rhs );
48498     }
48499 
48500   private:
48501     using layout::PhysicalDeviceRepresentativeFragmentTestFeaturesNV::sType;
48502   };
48503   static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
48504   static_assert( std::is_standard_layout<PhysicalDeviceRepresentativeFragmentTestFeaturesNV>::value, "struct wrapper is not a standard layout!" );
48505 
48506   namespace layout
48507   {
48508     struct PhysicalDeviceSampleLocationsPropertiesEXT
48509     {
48510     protected:
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSampleLocationsPropertiesEXT48511       PhysicalDeviceSampleLocationsPropertiesEXT( vk::SampleCountFlags sampleLocationSampleCounts_ = vk::SampleCountFlags(),
48512                                                   vk::Extent2D maxSampleLocationGridSize_ = vk::Extent2D(),
48513                                                   std::array<float,2> const& sampleLocationCoordinateRange_ = { { 0 } },
48514                                                   uint32_t sampleLocationSubPixelBits_ = 0,
48515                                                   vk::Bool32 variableSampleLocations_ = 0 )
48516         : sampleLocationSampleCounts( sampleLocationSampleCounts_ )
48517         , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
48518         , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ )
48519         , variableSampleLocations( variableSampleLocations_ )
48520       {
48521         memcpy( &sampleLocationCoordinateRange, sampleLocationCoordinateRange_.data(), 2 * sizeof( float ) );
48522 
48523       }
48524 
PhysicalDeviceSampleLocationsPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSampleLocationsPropertiesEXT48525       PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs )
48526       {
48527         *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(this) = rhs;
48528       }
48529 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSampleLocationsPropertiesEXT48530       PhysicalDeviceSampleLocationsPropertiesEXT& operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs )
48531       {
48532         *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(this) = rhs;
48533         return *this;
48534       }
48535 
48536     public:
48537       vk::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
48538       void* pNext = nullptr;
48539       vk::SampleCountFlags sampleLocationSampleCounts;
48540       vk::Extent2D maxSampleLocationGridSize;
48541       float sampleLocationCoordinateRange[2];
48542       uint32_t sampleLocationSubPixelBits;
48543       vk::Bool32 variableSampleLocations;
48544     };
48545     static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "layout struct and wrapper have different size!" );
48546   }
48547 
48548   struct PhysicalDeviceSampleLocationsPropertiesEXT : public layout::PhysicalDeviceSampleLocationsPropertiesEXT
48549   {
operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT48550     operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const
48551     {
48552       return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
48553     }
48554 
operator VkPhysicalDeviceSampleLocationsPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT48555     operator VkPhysicalDeviceSampleLocationsPropertiesEXT &()
48556     {
48557       return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
48558     }
48559 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT48560     bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const
48561     {
48562       return ( sType == rhs.sType )
48563           && ( pNext == rhs.pNext )
48564           && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
48565           && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
48566           && ( memcmp( sampleLocationCoordinateRange, rhs.sampleLocationCoordinateRange, 2 * sizeof( float ) ) == 0 )
48567           && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
48568           && ( variableSampleLocations == rhs.variableSampleLocations );
48569     }
48570 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT48571     bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const
48572     {
48573       return !operator==( rhs );
48574     }
48575 
48576   private:
48577     using layout::PhysicalDeviceSampleLocationsPropertiesEXT::sType;
48578   };
48579   static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
48580   static_assert( std::is_standard_layout<PhysicalDeviceSampleLocationsPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
48581 
48582   namespace layout
48583   {
48584     struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT
48585     {
48586     protected:
PhysicalDeviceSamplerFilterMinmaxPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48587       PhysicalDeviceSamplerFilterMinmaxPropertiesEXT( vk::Bool32 filterMinmaxSingleComponentFormats_ = 0,
48588                                                       vk::Bool32 filterMinmaxImageComponentMapping_ = 0 )
48589         : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
48590         , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
48591       {}
48592 
PhysicalDeviceSamplerFilterMinmaxPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48593       PhysicalDeviceSamplerFilterMinmaxPropertiesEXT( VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const & rhs )
48594       {
48595         *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(this) = rhs;
48596       }
48597 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48598       PhysicalDeviceSamplerFilterMinmaxPropertiesEXT& operator=( VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const & rhs )
48599       {
48600         *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(this) = rhs;
48601         return *this;
48602       }
48603 
48604     public:
48605       vk::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
48606       void* pNext = nullptr;
48607       vk::Bool32 filterMinmaxSingleComponentFormats;
48608       vk::Bool32 filterMinmaxImageComponentMapping;
48609     };
48610     static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT ), "layout struct and wrapper have different size!" );
48611   }
48612 
48613   struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT : public layout::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT
48614   {
operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48615     operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const&() const
48616     {
48617       return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>( this );
48618     }
48619 
operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48620     operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT &()
48621     {
48622       return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>( this );
48623     }
48624 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48625     bool operator==( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT const& rhs ) const
48626     {
48627       return ( sType == rhs.sType )
48628           && ( pNext == rhs.pNext )
48629           && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
48630           && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
48631     }
48632 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT48633     bool operator!=( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT const& rhs ) const
48634     {
48635       return !operator==( rhs );
48636     }
48637 
48638   private:
48639     using layout::PhysicalDeviceSamplerFilterMinmaxPropertiesEXT::sType;
48640   };
48641   static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT ), "struct and wrapper have different size!" );
48642   static_assert( std::is_standard_layout<PhysicalDeviceSamplerFilterMinmaxPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
48643 
48644   namespace layout
48645   {
48646     struct PhysicalDeviceSamplerYcbcrConversionFeatures
48647     {
48648     protected:
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerYcbcrConversionFeatures48649       PhysicalDeviceSamplerYcbcrConversionFeatures( vk::Bool32 samplerYcbcrConversion_ = 0 )
48650         : samplerYcbcrConversion( samplerYcbcrConversion_ )
48651       {}
48652 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerYcbcrConversionFeatures48653       PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
48654       {
48655         *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this) = rhs;
48656       }
48657 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSamplerYcbcrConversionFeatures48658       PhysicalDeviceSamplerYcbcrConversionFeatures& operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
48659       {
48660         *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this) = rhs;
48661         return *this;
48662       }
48663 
48664     public:
48665       vk::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
48666       void* pNext = nullptr;
48667       vk::Bool32 samplerYcbcrConversion;
48668     };
48669     static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "layout struct and wrapper have different size!" );
48670   }
48671 
48672   struct PhysicalDeviceSamplerYcbcrConversionFeatures : public layout::PhysicalDeviceSamplerYcbcrConversionFeatures
48673   {
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48674     PhysicalDeviceSamplerYcbcrConversionFeatures( vk::Bool32 samplerYcbcrConversion_ = 0 )
48675       : layout::PhysicalDeviceSamplerYcbcrConversionFeatures( samplerYcbcrConversion_ )
48676     {}
48677 
PhysicalDeviceSamplerYcbcrConversionFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48678     PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
48679       : layout::PhysicalDeviceSamplerYcbcrConversionFeatures( rhs )
48680     {}
48681 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48682     PhysicalDeviceSamplerYcbcrConversionFeatures& operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
48683     {
48684       *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this) = rhs;
48685       return *this;
48686     }
48687 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48688     PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ )
48689     {
48690       pNext = pNext_;
48691       return *this;
48692     }
48693 
setSamplerYcbcrConversionVULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48694     PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( vk::Bool32 samplerYcbcrConversion_ )
48695     {
48696       samplerYcbcrConversion = samplerYcbcrConversion_;
48697       return *this;
48698     }
48699 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48700     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const
48701     {
48702       return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
48703     }
48704 
operator VkPhysicalDeviceSamplerYcbcrConversionFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48705     operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &()
48706     {
48707       return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
48708     }
48709 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48710     bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const
48711     {
48712       return ( sType == rhs.sType )
48713           && ( pNext == rhs.pNext )
48714           && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
48715     }
48716 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures48717     bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const
48718     {
48719       return !operator==( rhs );
48720     }
48721 
48722   private:
48723     using layout::PhysicalDeviceSamplerYcbcrConversionFeatures::sType;
48724   };
48725   static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
48726   static_assert( std::is_standard_layout<PhysicalDeviceSamplerYcbcrConversionFeatures>::value, "struct wrapper is not a standard layout!" );
48727 
48728   namespace layout
48729   {
48730     struct PhysicalDeviceScalarBlockLayoutFeaturesEXT
48731     {
48732     protected:
PhysicalDeviceScalarBlockLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT48733       PhysicalDeviceScalarBlockLayoutFeaturesEXT( vk::Bool32 scalarBlockLayout_ = 0 )
48734         : scalarBlockLayout( scalarBlockLayout_ )
48735       {}
48736 
PhysicalDeviceScalarBlockLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT48737       PhysicalDeviceScalarBlockLayoutFeaturesEXT( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
48738       {
48739         *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>(this) = rhs;
48740       }
48741 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT48742       PhysicalDeviceScalarBlockLayoutFeaturesEXT& operator=( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
48743       {
48744         *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>(this) = rhs;
48745         return *this;
48746       }
48747 
48748     public:
48749       vk::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeaturesEXT;
48750       void* pNext = nullptr;
48751       vk::Bool32 scalarBlockLayout;
48752     };
48753     static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeaturesEXT ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT ), "layout struct and wrapper have different size!" );
48754   }
48755 
48756   struct PhysicalDeviceScalarBlockLayoutFeaturesEXT : public layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT
48757   {
PhysicalDeviceScalarBlockLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48758     PhysicalDeviceScalarBlockLayoutFeaturesEXT( vk::Bool32 scalarBlockLayout_ = 0 )
48759       : layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT( scalarBlockLayout_ )
48760     {}
48761 
PhysicalDeviceScalarBlockLayoutFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48762     PhysicalDeviceScalarBlockLayoutFeaturesEXT( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
48763       : layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT( rhs )
48764     {}
48765 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48766     PhysicalDeviceScalarBlockLayoutFeaturesEXT& operator=( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
48767     {
48768       *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>(this) = rhs;
48769       return *this;
48770     }
48771 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48772     PhysicalDeviceScalarBlockLayoutFeaturesEXT & setPNext( void* pNext_ )
48773     {
48774       pNext = pNext_;
48775       return *this;
48776     }
48777 
setScalarBlockLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48778     PhysicalDeviceScalarBlockLayoutFeaturesEXT & setScalarBlockLayout( vk::Bool32 scalarBlockLayout_ )
48779     {
48780       scalarBlockLayout = scalarBlockLayout_;
48781       return *this;
48782     }
48783 
operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48784     operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const&() const
48785     {
48786       return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>( this );
48787     }
48788 
operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48789     operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT &()
48790     {
48791       return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>( this );
48792     }
48793 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48794     bool operator==( PhysicalDeviceScalarBlockLayoutFeaturesEXT const& rhs ) const
48795     {
48796       return ( sType == rhs.sType )
48797           && ( pNext == rhs.pNext )
48798           && ( scalarBlockLayout == rhs.scalarBlockLayout );
48799     }
48800 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeaturesEXT48801     bool operator!=( PhysicalDeviceScalarBlockLayoutFeaturesEXT const& rhs ) const
48802     {
48803       return !operator==( rhs );
48804     }
48805 
48806   private:
48807     using layout::PhysicalDeviceScalarBlockLayoutFeaturesEXT::sType;
48808   };
48809   static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeaturesEXT ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT ), "struct and wrapper have different size!" );
48810   static_assert( std::is_standard_layout<PhysicalDeviceScalarBlockLayoutFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
48811 
48812   namespace layout
48813   {
48814     struct PhysicalDeviceShaderAtomicInt64FeaturesKHR
48815     {
48816     protected:
PhysicalDeviceShaderAtomicInt64FeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR48817       PhysicalDeviceShaderAtomicInt64FeaturesKHR( vk::Bool32 shaderBufferInt64Atomics_ = 0,
48818                                                   vk::Bool32 shaderSharedInt64Atomics_ = 0 )
48819         : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
48820         , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
48821       {}
48822 
PhysicalDeviceShaderAtomicInt64FeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR48823       PhysicalDeviceShaderAtomicInt64FeaturesKHR( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
48824       {
48825         *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this) = rhs;
48826       }
48827 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR48828       PhysicalDeviceShaderAtomicInt64FeaturesKHR& operator=( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
48829       {
48830         *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this) = rhs;
48831         return *this;
48832       }
48833 
48834     public:
48835       vk::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR;
48836       void* pNext = nullptr;
48837       vk::Bool32 shaderBufferInt64Atomics;
48838       vk::Bool32 shaderSharedInt64Atomics;
48839     };
48840     static_assert( sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR ), "layout struct and wrapper have different size!" );
48841   }
48842 
48843   struct PhysicalDeviceShaderAtomicInt64FeaturesKHR : public layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR
48844   {
PhysicalDeviceShaderAtomicInt64FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48845     PhysicalDeviceShaderAtomicInt64FeaturesKHR( vk::Bool32 shaderBufferInt64Atomics_ = 0,
48846                                                 vk::Bool32 shaderSharedInt64Atomics_ = 0 )
48847       : layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR( shaderBufferInt64Atomics_, shaderSharedInt64Atomics_ )
48848     {}
48849 
PhysicalDeviceShaderAtomicInt64FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48850     PhysicalDeviceShaderAtomicInt64FeaturesKHR( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
48851       : layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR( rhs )
48852     {}
48853 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48854     PhysicalDeviceShaderAtomicInt64FeaturesKHR& operator=( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
48855     {
48856       *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this) = rhs;
48857       return *this;
48858     }
48859 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48860     PhysicalDeviceShaderAtomicInt64FeaturesKHR & setPNext( void* pNext_ )
48861     {
48862       pNext = pNext_;
48863       return *this;
48864     }
48865 
setShaderBufferInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48866     PhysicalDeviceShaderAtomicInt64FeaturesKHR & setShaderBufferInt64Atomics( vk::Bool32 shaderBufferInt64Atomics_ )
48867     {
48868       shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
48869       return *this;
48870     }
48871 
setShaderSharedInt64AtomicsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48872     PhysicalDeviceShaderAtomicInt64FeaturesKHR & setShaderSharedInt64Atomics( vk::Bool32 shaderSharedInt64Atomics_ )
48873     {
48874       shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
48875       return *this;
48876     }
48877 
operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48878     operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const&() const
48879     {
48880       return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>( this );
48881     }
48882 
operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48883     operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR &()
48884     {
48885       return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>( this );
48886     }
48887 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48888     bool operator==( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const
48889     {
48890       return ( sType == rhs.sType )
48891           && ( pNext == rhs.pNext )
48892           && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
48893           && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
48894     }
48895 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64FeaturesKHR48896     bool operator!=( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const
48897     {
48898       return !operator==( rhs );
48899     }
48900 
48901   private:
48902     using layout::PhysicalDeviceShaderAtomicInt64FeaturesKHR::sType;
48903   };
48904   static_assert( sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR ), "struct and wrapper have different size!" );
48905   static_assert( std::is_standard_layout<PhysicalDeviceShaderAtomicInt64FeaturesKHR>::value, "struct wrapper is not a standard layout!" );
48906 
48907   namespace layout
48908   {
48909     struct PhysicalDeviceShaderCoreProperties2AMD
48910     {
48911     protected:
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCoreProperties2AMD48912       PhysicalDeviceShaderCoreProperties2AMD( vk::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = vk::ShaderCorePropertiesFlagsAMD(),
48913                                               uint32_t activeComputeUnitCount_ = 0 )
48914         : shaderCoreFeatures( shaderCoreFeatures_ )
48915         , activeComputeUnitCount( activeComputeUnitCount_ )
48916       {}
48917 
PhysicalDeviceShaderCoreProperties2AMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCoreProperties2AMD48918       PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs )
48919       {
48920         *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(this) = rhs;
48921       }
48922 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCoreProperties2AMD48923       PhysicalDeviceShaderCoreProperties2AMD& operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs )
48924       {
48925         *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(this) = rhs;
48926         return *this;
48927       }
48928 
48929     public:
48930       vk::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
48931       void* pNext = nullptr;
48932       vk::ShaderCorePropertiesFlagsAMD shaderCoreFeatures;
48933       uint32_t activeComputeUnitCount;
48934     };
48935     static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "layout struct and wrapper have different size!" );
48936   }
48937 
48938   struct PhysicalDeviceShaderCoreProperties2AMD : public layout::PhysicalDeviceShaderCoreProperties2AMD
48939   {
operator VkPhysicalDeviceShaderCoreProperties2AMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD48940     operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const
48941     {
48942       return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
48943     }
48944 
operator VkPhysicalDeviceShaderCoreProperties2AMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD48945     operator VkPhysicalDeviceShaderCoreProperties2AMD &()
48946     {
48947       return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>( this );
48948     }
48949 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD48950     bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const
48951     {
48952       return ( sType == rhs.sType )
48953           && ( pNext == rhs.pNext )
48954           && ( shaderCoreFeatures == rhs.shaderCoreFeatures )
48955           && ( activeComputeUnitCount == rhs.activeComputeUnitCount );
48956     }
48957 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD48958     bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const
48959     {
48960       return !operator==( rhs );
48961     }
48962 
48963   private:
48964     using layout::PhysicalDeviceShaderCoreProperties2AMD::sType;
48965   };
48966   static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" );
48967   static_assert( std::is_standard_layout<PhysicalDeviceShaderCoreProperties2AMD>::value, "struct wrapper is not a standard layout!" );
48968 
48969   namespace layout
48970   {
48971     struct PhysicalDeviceShaderCorePropertiesAMD
48972     {
48973     protected:
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCorePropertiesAMD48974       PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = 0,
48975                                              uint32_t shaderArraysPerEngineCount_ = 0,
48976                                              uint32_t computeUnitsPerShaderArray_ = 0,
48977                                              uint32_t simdPerComputeUnit_ = 0,
48978                                              uint32_t wavefrontsPerSimd_ = 0,
48979                                              uint32_t wavefrontSize_ = 0,
48980                                              uint32_t sgprsPerSimd_ = 0,
48981                                              uint32_t minSgprAllocation_ = 0,
48982                                              uint32_t maxSgprAllocation_ = 0,
48983                                              uint32_t sgprAllocationGranularity_ = 0,
48984                                              uint32_t vgprsPerSimd_ = 0,
48985                                              uint32_t minVgprAllocation_ = 0,
48986                                              uint32_t maxVgprAllocation_ = 0,
48987                                              uint32_t vgprAllocationGranularity_ = 0 )
48988         : shaderEngineCount( shaderEngineCount_ )
48989         , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ )
48990         , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ )
48991         , simdPerComputeUnit( simdPerComputeUnit_ )
48992         , wavefrontsPerSimd( wavefrontsPerSimd_ )
48993         , wavefrontSize( wavefrontSize_ )
48994         , sgprsPerSimd( sgprsPerSimd_ )
48995         , minSgprAllocation( minSgprAllocation_ )
48996         , maxSgprAllocation( maxSgprAllocation_ )
48997         , sgprAllocationGranularity( sgprAllocationGranularity_ )
48998         , vgprsPerSimd( vgprsPerSimd_ )
48999         , minVgprAllocation( minVgprAllocation_ )
49000         , maxVgprAllocation( maxVgprAllocation_ )
49001         , vgprAllocationGranularity( vgprAllocationGranularity_ )
49002       {}
49003 
PhysicalDeviceShaderCorePropertiesAMDVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCorePropertiesAMD49004       PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs )
49005       {
49006         *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(this) = rhs;
49007       }
49008 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderCorePropertiesAMD49009       PhysicalDeviceShaderCorePropertiesAMD& operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs )
49010       {
49011         *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(this) = rhs;
49012         return *this;
49013       }
49014 
49015     public:
49016       vk::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
49017       void* pNext = nullptr;
49018       uint32_t shaderEngineCount;
49019       uint32_t shaderArraysPerEngineCount;
49020       uint32_t computeUnitsPerShaderArray;
49021       uint32_t simdPerComputeUnit;
49022       uint32_t wavefrontsPerSimd;
49023       uint32_t wavefrontSize;
49024       uint32_t sgprsPerSimd;
49025       uint32_t minSgprAllocation;
49026       uint32_t maxSgprAllocation;
49027       uint32_t sgprAllocationGranularity;
49028       uint32_t vgprsPerSimd;
49029       uint32_t minVgprAllocation;
49030       uint32_t maxVgprAllocation;
49031       uint32_t vgprAllocationGranularity;
49032     };
49033     static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "layout struct and wrapper have different size!" );
49034   }
49035 
49036   struct PhysicalDeviceShaderCorePropertiesAMD : public layout::PhysicalDeviceShaderCorePropertiesAMD
49037   {
operator VkPhysicalDeviceShaderCorePropertiesAMD const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD49038     operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const
49039     {
49040       return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
49041     }
49042 
operator VkPhysicalDeviceShaderCorePropertiesAMD&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD49043     operator VkPhysicalDeviceShaderCorePropertiesAMD &()
49044     {
49045       return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
49046     }
49047 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD49048     bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const
49049     {
49050       return ( sType == rhs.sType )
49051           && ( pNext == rhs.pNext )
49052           && ( shaderEngineCount == rhs.shaderEngineCount )
49053           && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
49054           && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
49055           && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
49056           && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
49057           && ( wavefrontSize == rhs.wavefrontSize )
49058           && ( sgprsPerSimd == rhs.sgprsPerSimd )
49059           && ( minSgprAllocation == rhs.minSgprAllocation )
49060           && ( maxSgprAllocation == rhs.maxSgprAllocation )
49061           && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
49062           && ( vgprsPerSimd == rhs.vgprsPerSimd )
49063           && ( minVgprAllocation == rhs.minVgprAllocation )
49064           && ( maxVgprAllocation == rhs.maxVgprAllocation )
49065           && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
49066     }
49067 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD49068     bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const
49069     {
49070       return !operator==( rhs );
49071     }
49072 
49073   private:
49074     using layout::PhysicalDeviceShaderCorePropertiesAMD::sType;
49075   };
49076   static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
49077   static_assert( std::is_standard_layout<PhysicalDeviceShaderCorePropertiesAMD>::value, "struct wrapper is not a standard layout!" );
49078 
49079   namespace layout
49080   {
49081     struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
49082     {
49083     protected:
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49084       PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( vk::Bool32 shaderDemoteToHelperInvocation_ = 0 )
49085         : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
49086       {}
49087 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49088       PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
49089       {
49090         *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(this) = rhs;
49091       }
49092 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49093       PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
49094       {
49095         *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(this) = rhs;
49096         return *this;
49097       }
49098 
49099     public:
49100       vk::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
49101       void* pNext = nullptr;
49102       vk::Bool32 shaderDemoteToHelperInvocation;
49103     };
49104     static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "layout struct and wrapper have different size!" );
49105   }
49106 
49107   struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : public layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
49108   {
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49109     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( vk::Bool32 shaderDemoteToHelperInvocation_ = 0 )
49110       : layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( shaderDemoteToHelperInvocation_ )
49111     {}
49112 
PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49113     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
49114       : layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( rhs )
49115     {}
49116 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49117     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
49118     {
49119       *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(this) = rhs;
49120       return *this;
49121     }
49122 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49123     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ )
49124     {
49125       pNext = pNext_;
49126       return *this;
49127     }
49128 
setShaderDemoteToHelperInvocationVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49129     PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( vk::Bool32 shaderDemoteToHelperInvocation_ )
49130     {
49131       shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
49132       return *this;
49133     }
49134 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49135     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const
49136     {
49137       return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
49138     }
49139 
operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49140     operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &()
49141     {
49142       return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
49143     }
49144 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49145     bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const
49146     {
49147       return ( sType == rhs.sType )
49148           && ( pNext == rhs.pNext )
49149           && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
49150     }
49151 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT49152     bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const
49153     {
49154       return !operator==( rhs );
49155     }
49156 
49157   private:
49158     using layout::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT::sType;
49159   };
49160   static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
49161   static_assert( std::is_standard_layout<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
49162 
49163   namespace layout
49164   {
49165     struct PhysicalDeviceShaderDrawParametersFeatures
49166     {
49167     protected:
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDrawParametersFeatures49168       PhysicalDeviceShaderDrawParametersFeatures( vk::Bool32 shaderDrawParameters_ = 0 )
49169         : shaderDrawParameters( shaderDrawParameters_ )
49170       {}
49171 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDrawParametersFeatures49172       PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
49173       {
49174         *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(this) = rhs;
49175       }
49176 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderDrawParametersFeatures49177       PhysicalDeviceShaderDrawParametersFeatures& operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
49178       {
49179         *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(this) = rhs;
49180         return *this;
49181       }
49182 
49183     public:
49184       vk::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
49185       void* pNext = nullptr;
49186       vk::Bool32 shaderDrawParameters;
49187     };
49188     static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "layout struct and wrapper have different size!" );
49189   }
49190 
49191   struct PhysicalDeviceShaderDrawParametersFeatures : public layout::PhysicalDeviceShaderDrawParametersFeatures
49192   {
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49193     PhysicalDeviceShaderDrawParametersFeatures( vk::Bool32 shaderDrawParameters_ = 0 )
49194       : layout::PhysicalDeviceShaderDrawParametersFeatures( shaderDrawParameters_ )
49195     {}
49196 
PhysicalDeviceShaderDrawParametersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49197     PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
49198       : layout::PhysicalDeviceShaderDrawParametersFeatures( rhs )
49199     {}
49200 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49201     PhysicalDeviceShaderDrawParametersFeatures& operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
49202     {
49203       *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(this) = rhs;
49204       return *this;
49205     }
49206 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49207     PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ )
49208     {
49209       pNext = pNext_;
49210       return *this;
49211     }
49212 
setShaderDrawParametersVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49213     PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( vk::Bool32 shaderDrawParameters_ )
49214     {
49215       shaderDrawParameters = shaderDrawParameters_;
49216       return *this;
49217     }
49218 
operator VkPhysicalDeviceShaderDrawParametersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49219     operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const
49220     {
49221       return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
49222     }
49223 
operator VkPhysicalDeviceShaderDrawParametersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49224     operator VkPhysicalDeviceShaderDrawParametersFeatures &()
49225     {
49226       return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
49227     }
49228 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49229     bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const
49230     {
49231       return ( sType == rhs.sType )
49232           && ( pNext == rhs.pNext )
49233           && ( shaderDrawParameters == rhs.shaderDrawParameters );
49234     }
49235 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures49236     bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const
49237     {
49238       return !operator==( rhs );
49239     }
49240 
49241   private:
49242     using layout::PhysicalDeviceShaderDrawParametersFeatures::sType;
49243   };
49244   static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
49245   static_assert( std::is_standard_layout<PhysicalDeviceShaderDrawParametersFeatures>::value, "struct wrapper is not a standard layout!" );
49246 
49247   namespace layout
49248   {
49249     struct PhysicalDeviceShaderFloat16Int8FeaturesKHR
49250     {
49251     protected:
PhysicalDeviceShaderFloat16Int8FeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR49252       PhysicalDeviceShaderFloat16Int8FeaturesKHR( vk::Bool32 shaderFloat16_ = 0,
49253                                                   vk::Bool32 shaderInt8_ = 0 )
49254         : shaderFloat16( shaderFloat16_ )
49255         , shaderInt8( shaderInt8_ )
49256       {}
49257 
PhysicalDeviceShaderFloat16Int8FeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR49258       PhysicalDeviceShaderFloat16Int8FeaturesKHR( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const & rhs )
49259       {
49260         *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8FeaturesKHR*>(this) = rhs;
49261       }
49262 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR49263       PhysicalDeviceShaderFloat16Int8FeaturesKHR& operator=( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const & rhs )
49264       {
49265         *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8FeaturesKHR*>(this) = rhs;
49266         return *this;
49267       }
49268 
49269     public:
49270       vk::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8FeaturesKHR;
49271       void* pNext = nullptr;
49272       vk::Bool32 shaderFloat16;
49273       vk::Bool32 shaderInt8;
49274     };
49275     static_assert( sizeof( PhysicalDeviceShaderFloat16Int8FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR ), "layout struct and wrapper have different size!" );
49276   }
49277 
49278   struct PhysicalDeviceShaderFloat16Int8FeaturesKHR : public layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR
49279   {
PhysicalDeviceShaderFloat16Int8FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49280     PhysicalDeviceShaderFloat16Int8FeaturesKHR( vk::Bool32 shaderFloat16_ = 0,
49281                                                 vk::Bool32 shaderInt8_ = 0 )
49282       : layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR( shaderFloat16_, shaderInt8_ )
49283     {}
49284 
PhysicalDeviceShaderFloat16Int8FeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49285     PhysicalDeviceShaderFloat16Int8FeaturesKHR( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const & rhs )
49286       : layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR( rhs )
49287     {}
49288 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49289     PhysicalDeviceShaderFloat16Int8FeaturesKHR& operator=( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const & rhs )
49290     {
49291       *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8FeaturesKHR*>(this) = rhs;
49292       return *this;
49293     }
49294 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49295     PhysicalDeviceShaderFloat16Int8FeaturesKHR & setPNext( void* pNext_ )
49296     {
49297       pNext = pNext_;
49298       return *this;
49299     }
49300 
setShaderFloat16VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49301     PhysicalDeviceShaderFloat16Int8FeaturesKHR & setShaderFloat16( vk::Bool32 shaderFloat16_ )
49302     {
49303       shaderFloat16 = shaderFloat16_;
49304       return *this;
49305     }
49306 
setShaderInt8VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49307     PhysicalDeviceShaderFloat16Int8FeaturesKHR & setShaderInt8( vk::Bool32 shaderInt8_ )
49308     {
49309       shaderInt8 = shaderInt8_;
49310       return *this;
49311     }
49312 
operator VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49313     operator VkPhysicalDeviceShaderFloat16Int8FeaturesKHR const&() const
49314     {
49315       return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR*>( this );
49316     }
49317 
operator VkPhysicalDeviceShaderFloat16Int8FeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49318     operator VkPhysicalDeviceShaderFloat16Int8FeaturesKHR &()
49319     {
49320       return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8FeaturesKHR*>( this );
49321     }
49322 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49323     bool operator==( PhysicalDeviceShaderFloat16Int8FeaturesKHR const& rhs ) const
49324     {
49325       return ( sType == rhs.sType )
49326           && ( pNext == rhs.pNext )
49327           && ( shaderFloat16 == rhs.shaderFloat16 )
49328           && ( shaderInt8 == rhs.shaderInt8 );
49329     }
49330 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8FeaturesKHR49331     bool operator!=( PhysicalDeviceShaderFloat16Int8FeaturesKHR const& rhs ) const
49332     {
49333       return !operator==( rhs );
49334     }
49335 
49336   private:
49337     using layout::PhysicalDeviceShaderFloat16Int8FeaturesKHR::sType;
49338   };
49339   static_assert( sizeof( PhysicalDeviceShaderFloat16Int8FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderFloat16Int8FeaturesKHR ), "struct and wrapper have different size!" );
49340   static_assert( std::is_standard_layout<PhysicalDeviceShaderFloat16Int8FeaturesKHR>::value, "struct wrapper is not a standard layout!" );
49341 
49342   namespace layout
49343   {
49344     struct PhysicalDeviceShaderImageFootprintFeaturesNV
49345     {
49346     protected:
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderImageFootprintFeaturesNV49347       PhysicalDeviceShaderImageFootprintFeaturesNV( vk::Bool32 imageFootprint_ = 0 )
49348         : imageFootprint( imageFootprint_ )
49349       {}
49350 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderImageFootprintFeaturesNV49351       PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
49352       {
49353         *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this) = rhs;
49354       }
49355 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderImageFootprintFeaturesNV49356       PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
49357       {
49358         *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this) = rhs;
49359         return *this;
49360       }
49361 
49362     public:
49363       vk::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
49364       void* pNext = nullptr;
49365       vk::Bool32 imageFootprint;
49366     };
49367     static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "layout struct and wrapper have different size!" );
49368   }
49369 
49370   struct PhysicalDeviceShaderImageFootprintFeaturesNV : public layout::PhysicalDeviceShaderImageFootprintFeaturesNV
49371   {
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49372     PhysicalDeviceShaderImageFootprintFeaturesNV( vk::Bool32 imageFootprint_ = 0 )
49373       : layout::PhysicalDeviceShaderImageFootprintFeaturesNV( imageFootprint_ )
49374     {}
49375 
PhysicalDeviceShaderImageFootprintFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49376     PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
49377       : layout::PhysicalDeviceShaderImageFootprintFeaturesNV( rhs )
49378     {}
49379 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49380     PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
49381     {
49382       *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this) = rhs;
49383       return *this;
49384     }
49385 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49386     PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ )
49387     {
49388       pNext = pNext_;
49389       return *this;
49390     }
49391 
setImageFootprintVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49392     PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( vk::Bool32 imageFootprint_ )
49393     {
49394       imageFootprint = imageFootprint_;
49395       return *this;
49396     }
49397 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49398     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const
49399     {
49400       return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
49401     }
49402 
operator VkPhysicalDeviceShaderImageFootprintFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49403     operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &()
49404     {
49405       return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
49406     }
49407 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49408     bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const
49409     {
49410       return ( sType == rhs.sType )
49411           && ( pNext == rhs.pNext )
49412           && ( imageFootprint == rhs.imageFootprint );
49413     }
49414 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV49415     bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const
49416     {
49417       return !operator==( rhs );
49418     }
49419 
49420   private:
49421     using layout::PhysicalDeviceShaderImageFootprintFeaturesNV::sType;
49422   };
49423   static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
49424   static_assert( std::is_standard_layout<PhysicalDeviceShaderImageFootprintFeaturesNV>::value, "struct wrapper is not a standard layout!" );
49425 
49426   namespace layout
49427   {
49428     struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
49429     {
49430     protected:
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49431       PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( vk::Bool32 shaderIntegerFunctions2_ = 0 )
49432         : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
49433       {}
49434 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49435       PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs )
49436       {
49437         *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(this) = rhs;
49438       }
49439 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49440       PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs )
49441       {
49442         *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(this) = rhs;
49443         return *this;
49444       }
49445 
49446     public:
49447       vk::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
49448       void* pNext = nullptr;
49449       vk::Bool32 shaderIntegerFunctions2;
49450     };
49451     static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "layout struct and wrapper have different size!" );
49452   }
49453 
49454   struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : public layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
49455   {
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49456     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( vk::Bool32 shaderIntegerFunctions2_ = 0 )
49457       : layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( shaderIntegerFunctions2_ )
49458     {}
49459 
PhysicalDeviceShaderIntegerFunctions2FeaturesINTELVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49460     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs )
49461       : layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( rhs )
49462     {}
49463 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49464     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs )
49465     {
49466       *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(this) = rhs;
49467       return *this;
49468     }
49469 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49470     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ )
49471     {
49472       pNext = pNext_;
49473       return *this;
49474     }
49475 
setShaderIntegerFunctions2VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49476     PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( vk::Bool32 shaderIntegerFunctions2_ )
49477     {
49478       shaderIntegerFunctions2 = shaderIntegerFunctions2_;
49479       return *this;
49480     }
49481 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49482     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const
49483     {
49484       return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
49485     }
49486 
operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49487     operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &()
49488     {
49489       return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>( this );
49490     }
49491 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49492     bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const
49493     {
49494       return ( sType == rhs.sType )
49495           && ( pNext == rhs.pNext )
49496           && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
49497     }
49498 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL49499     bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const
49500     {
49501       return !operator==( rhs );
49502     }
49503 
49504   private:
49505     using layout::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL::sType;
49506   };
49507   static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" );
49508   static_assert( std::is_standard_layout<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>::value, "struct wrapper is not a standard layout!" );
49509 
49510   namespace layout
49511   {
49512     struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
49513     {
49514     protected:
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV49515       PhysicalDeviceShaderSMBuiltinsFeaturesNV( vk::Bool32 shaderSMBuiltins_ = 0 )
49516         : shaderSMBuiltins( shaderSMBuiltins_ )
49517       {}
49518 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV49519       PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
49520       {
49521         *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(this) = rhs;
49522       }
49523 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV49524       PhysicalDeviceShaderSMBuiltinsFeaturesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
49525       {
49526         *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(this) = rhs;
49527         return *this;
49528       }
49529 
49530     public:
49531       vk::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
49532       void* pNext = nullptr;
49533       vk::Bool32 shaderSMBuiltins;
49534     };
49535     static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "layout struct and wrapper have different size!" );
49536   }
49537 
49538   struct PhysicalDeviceShaderSMBuiltinsFeaturesNV : public layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV
49539   {
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49540     PhysicalDeviceShaderSMBuiltinsFeaturesNV( vk::Bool32 shaderSMBuiltins_ = 0 )
49541       : layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV( shaderSMBuiltins_ )
49542     {}
49543 
PhysicalDeviceShaderSMBuiltinsFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49544     PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
49545       : layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV( rhs )
49546     {}
49547 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49548     PhysicalDeviceShaderSMBuiltinsFeaturesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
49549     {
49550       *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(this) = rhs;
49551       return *this;
49552     }
49553 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49554     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ )
49555     {
49556       pNext = pNext_;
49557       return *this;
49558     }
49559 
setShaderSMBuiltinsVULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49560     PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( vk::Bool32 shaderSMBuiltins_ )
49561     {
49562       shaderSMBuiltins = shaderSMBuiltins_;
49563       return *this;
49564     }
49565 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49566     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const
49567     {
49568       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
49569     }
49570 
operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49571     operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &()
49572     {
49573       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
49574     }
49575 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49576     bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const
49577     {
49578       return ( sType == rhs.sType )
49579           && ( pNext == rhs.pNext )
49580           && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
49581     }
49582 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV49583     bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const
49584     {
49585       return !operator==( rhs );
49586     }
49587 
49588   private:
49589     using layout::PhysicalDeviceShaderSMBuiltinsFeaturesNV::sType;
49590   };
49591   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
49592   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsFeaturesNV>::value, "struct wrapper is not a standard layout!" );
49593 
49594   namespace layout
49595   {
49596     struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
49597     {
49598     protected:
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsPropertiesNV49599       PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = 0,
49600                                                   uint32_t shaderWarpsPerSM_ = 0 )
49601         : shaderSMCount( shaderSMCount_ )
49602         , shaderWarpsPerSM( shaderWarpsPerSM_ )
49603       {}
49604 
PhysicalDeviceShaderSMBuiltinsPropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsPropertiesNV49605       PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs )
49606       {
49607         *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(this) = rhs;
49608       }
49609 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShaderSMBuiltinsPropertiesNV49610       PhysicalDeviceShaderSMBuiltinsPropertiesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs )
49611       {
49612         *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(this) = rhs;
49613         return *this;
49614       }
49615 
49616     public:
49617       vk::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
49618       void* pNext = nullptr;
49619       uint32_t shaderSMCount;
49620       uint32_t shaderWarpsPerSM;
49621     };
49622     static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "layout struct and wrapper have different size!" );
49623   }
49624 
49625   struct PhysicalDeviceShaderSMBuiltinsPropertiesNV : public layout::PhysicalDeviceShaderSMBuiltinsPropertiesNV
49626   {
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV49627     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const
49628     {
49629       return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
49630     }
49631 
operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV49632     operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &()
49633     {
49634       return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
49635     }
49636 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV49637     bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const
49638     {
49639       return ( sType == rhs.sType )
49640           && ( pNext == rhs.pNext )
49641           && ( shaderSMCount == rhs.shaderSMCount )
49642           && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
49643     }
49644 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV49645     bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const
49646     {
49647       return !operator==( rhs );
49648     }
49649 
49650   private:
49651     using layout::PhysicalDeviceShaderSMBuiltinsPropertiesNV::sType;
49652   };
49653   static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
49654   static_assert( std::is_standard_layout<PhysicalDeviceShaderSMBuiltinsPropertiesNV>::value, "struct wrapper is not a standard layout!" );
49655 
49656   namespace layout
49657   {
49658     struct PhysicalDeviceShadingRateImageFeaturesNV
49659     {
49660     protected:
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImageFeaturesNV49661       PhysicalDeviceShadingRateImageFeaturesNV( vk::Bool32 shadingRateImage_ = 0,
49662                                                 vk::Bool32 shadingRateCoarseSampleOrder_ = 0 )
49663         : shadingRateImage( shadingRateImage_ )
49664         , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
49665       {}
49666 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImageFeaturesNV49667       PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
49668       {
49669         *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this) = rhs;
49670       }
49671 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImageFeaturesNV49672       PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
49673       {
49674         *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this) = rhs;
49675         return *this;
49676       }
49677 
49678     public:
49679       vk::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
49680       void* pNext = nullptr;
49681       vk::Bool32 shadingRateImage;
49682       vk::Bool32 shadingRateCoarseSampleOrder;
49683     };
49684     static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "layout struct and wrapper have different size!" );
49685   }
49686 
49687   struct PhysicalDeviceShadingRateImageFeaturesNV : public layout::PhysicalDeviceShadingRateImageFeaturesNV
49688   {
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49689     PhysicalDeviceShadingRateImageFeaturesNV( vk::Bool32 shadingRateImage_ = 0,
49690                                               vk::Bool32 shadingRateCoarseSampleOrder_ = 0 )
49691       : layout::PhysicalDeviceShadingRateImageFeaturesNV( shadingRateImage_, shadingRateCoarseSampleOrder_ )
49692     {}
49693 
PhysicalDeviceShadingRateImageFeaturesNVVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49694     PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
49695       : layout::PhysicalDeviceShadingRateImageFeaturesNV( rhs )
49696     {}
49697 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49698     PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
49699     {
49700       *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this) = rhs;
49701       return *this;
49702     }
49703 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49704     PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ )
49705     {
49706       pNext = pNext_;
49707       return *this;
49708     }
49709 
setShadingRateImageVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49710     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( vk::Bool32 shadingRateImage_ )
49711     {
49712       shadingRateImage = shadingRateImage_;
49713       return *this;
49714     }
49715 
setShadingRateCoarseSampleOrderVULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49716     PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( vk::Bool32 shadingRateCoarseSampleOrder_ )
49717     {
49718       shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
49719       return *this;
49720     }
49721 
operator VkPhysicalDeviceShadingRateImageFeaturesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49722     operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const
49723     {
49724       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
49725     }
49726 
operator VkPhysicalDeviceShadingRateImageFeaturesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49727     operator VkPhysicalDeviceShadingRateImageFeaturesNV &()
49728     {
49729       return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
49730     }
49731 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49732     bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const
49733     {
49734       return ( sType == rhs.sType )
49735           && ( pNext == rhs.pNext )
49736           && ( shadingRateImage == rhs.shadingRateImage )
49737           && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
49738     }
49739 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV49740     bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const
49741     {
49742       return !operator==( rhs );
49743     }
49744 
49745   private:
49746     using layout::PhysicalDeviceShadingRateImageFeaturesNV::sType;
49747   };
49748   static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
49749   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImageFeaturesNV>::value, "struct wrapper is not a standard layout!" );
49750 
49751   namespace layout
49752   {
49753     struct PhysicalDeviceShadingRateImagePropertiesNV
49754     {
49755     protected:
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImagePropertiesNV49756       PhysicalDeviceShadingRateImagePropertiesNV( vk::Extent2D shadingRateTexelSize_ = vk::Extent2D(),
49757                                                   uint32_t shadingRatePaletteSize_ = 0,
49758                                                   uint32_t shadingRateMaxCoarseSamples_ = 0 )
49759         : shadingRateTexelSize( shadingRateTexelSize_ )
49760         , shadingRatePaletteSize( shadingRatePaletteSize_ )
49761         , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
49762       {}
49763 
PhysicalDeviceShadingRateImagePropertiesNVVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImagePropertiesNV49764       PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs )
49765       {
49766         *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(this) = rhs;
49767       }
49768 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceShadingRateImagePropertiesNV49769       PhysicalDeviceShadingRateImagePropertiesNV& operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs )
49770       {
49771         *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(this) = rhs;
49772         return *this;
49773       }
49774 
49775     public:
49776       vk::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
49777       void* pNext = nullptr;
49778       vk::Extent2D shadingRateTexelSize;
49779       uint32_t shadingRatePaletteSize;
49780       uint32_t shadingRateMaxCoarseSamples;
49781     };
49782     static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "layout struct and wrapper have different size!" );
49783   }
49784 
49785   struct PhysicalDeviceShadingRateImagePropertiesNV : public layout::PhysicalDeviceShadingRateImagePropertiesNV
49786   {
operator VkPhysicalDeviceShadingRateImagePropertiesNV const&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV49787     operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const
49788     {
49789       return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
49790     }
49791 
operator VkPhysicalDeviceShadingRateImagePropertiesNV&VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV49792     operator VkPhysicalDeviceShadingRateImagePropertiesNV &()
49793     {
49794       return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
49795     }
49796 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV49797     bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const
49798     {
49799       return ( sType == rhs.sType )
49800           && ( pNext == rhs.pNext )
49801           && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
49802           && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
49803           && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
49804     }
49805 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV49806     bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const
49807     {
49808       return !operator==( rhs );
49809     }
49810 
49811   private:
49812     using layout::PhysicalDeviceShadingRateImagePropertiesNV::sType;
49813   };
49814   static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
49815   static_assert( std::is_standard_layout<PhysicalDeviceShadingRateImagePropertiesNV>::value, "struct wrapper is not a standard layout!" );
49816 
49817   namespace layout
49818   {
49819     struct PhysicalDeviceSparseImageFormatInfo2
49820     {
49821     protected:
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSparseImageFormatInfo249822       PhysicalDeviceSparseImageFormatInfo2( vk::Format format_ = vk::Format::eUndefined,
49823                                             vk::ImageType type_ = vk::ImageType::e1D,
49824                                             vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
49825                                             vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
49826                                             vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal )
49827         : format( format_ )
49828         , type( type_ )
49829         , samples( samples_ )
49830         , usage( usage_ )
49831         , tiling( tiling_ )
49832       {}
49833 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSparseImageFormatInfo249834       PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
49835       {
49836         *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this) = rhs;
49837       }
49838 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSparseImageFormatInfo249839       PhysicalDeviceSparseImageFormatInfo2& operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
49840       {
49841         *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this) = rhs;
49842         return *this;
49843       }
49844 
49845     public:
49846       vk::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
49847       const void* pNext = nullptr;
49848       vk::Format format;
49849       vk::ImageType type;
49850       vk::SampleCountFlagBits samples;
49851       vk::ImageUsageFlags usage;
49852       vk::ImageTiling tiling;
49853     };
49854     static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "layout struct and wrapper have different size!" );
49855   }
49856 
49857   struct PhysicalDeviceSparseImageFormatInfo2 : public layout::PhysicalDeviceSparseImageFormatInfo2
49858   {
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249859     PhysicalDeviceSparseImageFormatInfo2( vk::Format format_ = vk::Format::eUndefined,
49860                                           vk::ImageType type_ = vk::ImageType::e1D,
49861                                           vk::SampleCountFlagBits samples_ = vk::SampleCountFlagBits::e1,
49862                                           vk::ImageUsageFlags usage_ = vk::ImageUsageFlags(),
49863                                           vk::ImageTiling tiling_ = vk::ImageTiling::eOptimal )
49864       : layout::PhysicalDeviceSparseImageFormatInfo2( format_, type_, samples_, usage_, tiling_ )
49865     {}
49866 
PhysicalDeviceSparseImageFormatInfo2VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249867     PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
49868       : layout::PhysicalDeviceSparseImageFormatInfo2( rhs )
49869     {}
49870 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249871     PhysicalDeviceSparseImageFormatInfo2& operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
49872     {
49873       *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this) = rhs;
49874       return *this;
49875     }
49876 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249877     PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ )
49878     {
49879       pNext = pNext_;
49880       return *this;
49881     }
49882 
setFormatVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249883     PhysicalDeviceSparseImageFormatInfo2 & setFormat( vk::Format format_ )
49884     {
49885       format = format_;
49886       return *this;
49887     }
49888 
setTypeVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249889     PhysicalDeviceSparseImageFormatInfo2 & setType( vk::ImageType type_ )
49890     {
49891       type = type_;
49892       return *this;
49893     }
49894 
setSamplesVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249895     PhysicalDeviceSparseImageFormatInfo2 & setSamples( vk::SampleCountFlagBits samples_ )
49896     {
49897       samples = samples_;
49898       return *this;
49899     }
49900 
setUsageVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249901     PhysicalDeviceSparseImageFormatInfo2 & setUsage( vk::ImageUsageFlags usage_ )
49902     {
49903       usage = usage_;
49904       return *this;
49905     }
49906 
setTilingVULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249907     PhysicalDeviceSparseImageFormatInfo2 & setTiling( vk::ImageTiling tiling_ )
49908     {
49909       tiling = tiling_;
49910       return *this;
49911     }
49912 
operator VkPhysicalDeviceSparseImageFormatInfo2 const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249913     operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const
49914     {
49915       return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
49916     }
49917 
operator VkPhysicalDeviceSparseImageFormatInfo2&VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249918     operator VkPhysicalDeviceSparseImageFormatInfo2 &()
49919     {
49920       return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
49921     }
49922 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249923     bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const
49924     {
49925       return ( sType == rhs.sType )
49926           && ( pNext == rhs.pNext )
49927           && ( format == rhs.format )
49928           && ( type == rhs.type )
49929           && ( samples == rhs.samples )
49930           && ( usage == rhs.usage )
49931           && ( tiling == rhs.tiling );
49932     }
49933 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo249934     bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const
49935     {
49936       return !operator==( rhs );
49937     }
49938 
49939   private:
49940     using layout::PhysicalDeviceSparseImageFormatInfo2::sType;
49941   };
49942   static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
49943   static_assert( std::is_standard_layout<PhysicalDeviceSparseImageFormatInfo2>::value, "struct wrapper is not a standard layout!" );
49944 
49945   namespace layout
49946   {
49947     struct PhysicalDeviceSubgroupProperties
49948     {
49949     protected:
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupProperties49950       PhysicalDeviceSubgroupProperties( uint32_t subgroupSize_ = 0,
49951                                         vk::ShaderStageFlags supportedStages_ = vk::ShaderStageFlags(),
49952                                         vk::SubgroupFeatureFlags supportedOperations_ = vk::SubgroupFeatureFlags(),
49953                                         vk::Bool32 quadOperationsInAllStages_ = 0 )
49954         : subgroupSize( subgroupSize_ )
49955         , supportedStages( supportedStages_ )
49956         , supportedOperations( supportedOperations_ )
49957         , quadOperationsInAllStages( quadOperationsInAllStages_ )
49958       {}
49959 
PhysicalDeviceSubgroupPropertiesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupProperties49960       PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs )
49961       {
49962         *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(this) = rhs;
49963       }
49964 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupProperties49965       PhysicalDeviceSubgroupProperties& operator=( VkPhysicalDeviceSubgroupProperties const & rhs )
49966       {
49967         *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(this) = rhs;
49968         return *this;
49969       }
49970 
49971     public:
49972       vk::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
49973       void* pNext = nullptr;
49974       uint32_t subgroupSize;
49975       vk::ShaderStageFlags supportedStages;
49976       vk::SubgroupFeatureFlags supportedOperations;
49977       vk::Bool32 quadOperationsInAllStages;
49978     };
49979     static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "layout struct and wrapper have different size!" );
49980   }
49981 
49982   struct PhysicalDeviceSubgroupProperties : public layout::PhysicalDeviceSubgroupProperties
49983   {
operator VkPhysicalDeviceSubgroupProperties const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties49984     operator VkPhysicalDeviceSubgroupProperties const&() const
49985     {
49986       return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
49987     }
49988 
operator VkPhysicalDeviceSubgroupProperties&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties49989     operator VkPhysicalDeviceSubgroupProperties &()
49990     {
49991       return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
49992     }
49993 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties49994     bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const
49995     {
49996       return ( sType == rhs.sType )
49997           && ( pNext == rhs.pNext )
49998           && ( subgroupSize == rhs.subgroupSize )
49999           && ( supportedStages == rhs.supportedStages )
50000           && ( supportedOperations == rhs.supportedOperations )
50001           && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
50002     }
50003 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties50004     bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const
50005     {
50006       return !operator==( rhs );
50007     }
50008 
50009   private:
50010     using layout::PhysicalDeviceSubgroupProperties::sType;
50011   };
50012   static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
50013   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupProperties>::value, "struct wrapper is not a standard layout!" );
50014 
50015   namespace layout
50016   {
50017     struct PhysicalDeviceSubgroupSizeControlFeaturesEXT
50018     {
50019     protected:
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT50020       PhysicalDeviceSubgroupSizeControlFeaturesEXT( vk::Bool32 subgroupSizeControl_ = 0,
50021                                                     vk::Bool32 computeFullSubgroups_ = 0 )
50022         : subgroupSizeControl( subgroupSizeControl_ )
50023         , computeFullSubgroups( computeFullSubgroups_ )
50024       {}
50025 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT50026       PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs )
50027       {
50028         *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(this) = rhs;
50029       }
50030 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT50031       PhysicalDeviceSubgroupSizeControlFeaturesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs )
50032       {
50033         *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(this) = rhs;
50034         return *this;
50035       }
50036 
50037     public:
50038       vk::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT;
50039       void* pNext = nullptr;
50040       vk::Bool32 subgroupSizeControl;
50041       vk::Bool32 computeFullSubgroups;
50042     };
50043     static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "layout struct and wrapper have different size!" );
50044   }
50045 
50046   struct PhysicalDeviceSubgroupSizeControlFeaturesEXT : public layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT
50047   {
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50048     PhysicalDeviceSubgroupSizeControlFeaturesEXT( vk::Bool32 subgroupSizeControl_ = 0,
50049                                                   vk::Bool32 computeFullSubgroups_ = 0 )
50050       : layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT( subgroupSizeControl_, computeFullSubgroups_ )
50051     {}
50052 
PhysicalDeviceSubgroupSizeControlFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50053     PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs )
50054       : layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT( rhs )
50055     {}
50056 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50057     PhysicalDeviceSubgroupSizeControlFeaturesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs )
50058     {
50059       *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(this) = rhs;
50060       return *this;
50061     }
50062 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50063     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ )
50064     {
50065       pNext = pNext_;
50066       return *this;
50067     }
50068 
setSubgroupSizeControlVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50069     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( vk::Bool32 subgroupSizeControl_ )
50070     {
50071       subgroupSizeControl = subgroupSizeControl_;
50072       return *this;
50073     }
50074 
setComputeFullSubgroupsVULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50075     PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( vk::Bool32 computeFullSubgroups_ )
50076     {
50077       computeFullSubgroups = computeFullSubgroups_;
50078       return *this;
50079     }
50080 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50081     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const
50082     {
50083       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
50084     }
50085 
operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50086     operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &()
50087     {
50088       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>( this );
50089     }
50090 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50091     bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const
50092     {
50093       return ( sType == rhs.sType )
50094           && ( pNext == rhs.pNext )
50095           && ( subgroupSizeControl == rhs.subgroupSizeControl )
50096           && ( computeFullSubgroups == rhs.computeFullSubgroups );
50097     }
50098 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT50099     bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const
50100     {
50101       return !operator==( rhs );
50102     }
50103 
50104   private:
50105     using layout::PhysicalDeviceSubgroupSizeControlFeaturesEXT::sType;
50106   };
50107   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" );
50108   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50109 
50110   namespace layout
50111   {
50112     struct PhysicalDeviceSubgroupSizeControlPropertiesEXT
50113     {
50114     protected:
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlPropertiesEXT50115       PhysicalDeviceSubgroupSizeControlPropertiesEXT( uint32_t minSubgroupSize_ = 0,
50116                                                       uint32_t maxSubgroupSize_ = 0,
50117                                                       uint32_t maxComputeWorkgroupSubgroups_ = 0,
50118                                                       vk::ShaderStageFlags requiredSubgroupSizeStages_ = vk::ShaderStageFlags() )
50119         : minSubgroupSize( minSubgroupSize_ )
50120         , maxSubgroupSize( maxSubgroupSize_ )
50121         , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
50122         , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
50123       {}
50124 
PhysicalDeviceSubgroupSizeControlPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlPropertiesEXT50125       PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs )
50126       {
50127         *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(this) = rhs;
50128       }
50129 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSubgroupSizeControlPropertiesEXT50130       PhysicalDeviceSubgroupSizeControlPropertiesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs )
50131       {
50132         *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(this) = rhs;
50133         return *this;
50134       }
50135 
50136     public:
50137       vk::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT;
50138       void* pNext = nullptr;
50139       uint32_t minSubgroupSize;
50140       uint32_t maxSubgroupSize;
50141       uint32_t maxComputeWorkgroupSubgroups;
50142       vk::ShaderStageFlags requiredSubgroupSizeStages;
50143     };
50144     static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "layout struct and wrapper have different size!" );
50145   }
50146 
50147   struct PhysicalDeviceSubgroupSizeControlPropertiesEXT : public layout::PhysicalDeviceSubgroupSizeControlPropertiesEXT
50148   {
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT50149     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const
50150     {
50151       return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
50152     }
50153 
operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT50154     operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &()
50155     {
50156       return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>( this );
50157     }
50158 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT50159     bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const
50160     {
50161       return ( sType == rhs.sType )
50162           && ( pNext == rhs.pNext )
50163           && ( minSubgroupSize == rhs.minSubgroupSize )
50164           && ( maxSubgroupSize == rhs.maxSubgroupSize )
50165           && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups )
50166           && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
50167     }
50168 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT50169     bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const
50170     {
50171       return !operator==( rhs );
50172     }
50173 
50174   private:
50175     using layout::PhysicalDeviceSubgroupSizeControlPropertiesEXT::sType;
50176   };
50177   static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" );
50178   static_assert( std::is_standard_layout<PhysicalDeviceSubgroupSizeControlPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
50179 
50180   namespace layout
50181   {
50182     struct PhysicalDeviceSurfaceInfo2KHR
50183     {
50184     protected:
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSurfaceInfo2KHR50185       PhysicalDeviceSurfaceInfo2KHR( vk::SurfaceKHR surface_ = vk::SurfaceKHR() )
50186         : surface( surface_ )
50187       {}
50188 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSurfaceInfo2KHR50189       PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
50190       {
50191         *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this) = rhs;
50192       }
50193 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceSurfaceInfo2KHR50194       PhysicalDeviceSurfaceInfo2KHR& operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
50195       {
50196         *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this) = rhs;
50197         return *this;
50198       }
50199 
50200     public:
50201       vk::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
50202       const void* pNext = nullptr;
50203       vk::SurfaceKHR surface;
50204     };
50205     static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "layout struct and wrapper have different size!" );
50206   }
50207 
50208   struct PhysicalDeviceSurfaceInfo2KHR : public layout::PhysicalDeviceSurfaceInfo2KHR
50209   {
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50210     PhysicalDeviceSurfaceInfo2KHR( vk::SurfaceKHR surface_ = vk::SurfaceKHR() )
50211       : layout::PhysicalDeviceSurfaceInfo2KHR( surface_ )
50212     {}
50213 
PhysicalDeviceSurfaceInfo2KHRVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50214     PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
50215       : layout::PhysicalDeviceSurfaceInfo2KHR( rhs )
50216     {}
50217 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50218     PhysicalDeviceSurfaceInfo2KHR& operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
50219     {
50220       *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this) = rhs;
50221       return *this;
50222     }
50223 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50224     PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ )
50225     {
50226       pNext = pNext_;
50227       return *this;
50228     }
50229 
setSurfaceVULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50230     PhysicalDeviceSurfaceInfo2KHR & setSurface( vk::SurfaceKHR surface_ )
50231     {
50232       surface = surface_;
50233       return *this;
50234     }
50235 
operator VkPhysicalDeviceSurfaceInfo2KHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50236     operator VkPhysicalDeviceSurfaceInfo2KHR const&() const
50237     {
50238       return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
50239     }
50240 
operator VkPhysicalDeviceSurfaceInfo2KHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50241     operator VkPhysicalDeviceSurfaceInfo2KHR &()
50242     {
50243       return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
50244     }
50245 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50246     bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const
50247     {
50248       return ( sType == rhs.sType )
50249           && ( pNext == rhs.pNext )
50250           && ( surface == rhs.surface );
50251     }
50252 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR50253     bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const
50254     {
50255       return !operator==( rhs );
50256     }
50257 
50258   private:
50259     using layout::PhysicalDeviceSurfaceInfo2KHR::sType;
50260   };
50261   static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
50262   static_assert( std::is_standard_layout<PhysicalDeviceSurfaceInfo2KHR>::value, "struct wrapper is not a standard layout!" );
50263 
50264   namespace layout
50265   {
50266     struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
50267     {
50268     protected:
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50269       PhysicalDeviceTexelBufferAlignmentFeaturesEXT( vk::Bool32 texelBufferAlignment_ = 0 )
50270         : texelBufferAlignment( texelBufferAlignment_ )
50271       {}
50272 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50273       PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
50274       {
50275         *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(this) = rhs;
50276       }
50277 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50278       PhysicalDeviceTexelBufferAlignmentFeaturesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
50279       {
50280         *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(this) = rhs;
50281         return *this;
50282       }
50283 
50284     public:
50285       vk::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
50286       void* pNext = nullptr;
50287       vk::Bool32 texelBufferAlignment;
50288     };
50289     static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "layout struct and wrapper have different size!" );
50290   }
50291 
50292   struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT : public layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT
50293   {
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50294     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( vk::Bool32 texelBufferAlignment_ = 0 )
50295       : layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT( texelBufferAlignment_ )
50296     {}
50297 
PhysicalDeviceTexelBufferAlignmentFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50298     PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
50299       : layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT( rhs )
50300     {}
50301 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50302     PhysicalDeviceTexelBufferAlignmentFeaturesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
50303     {
50304       *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(this) = rhs;
50305       return *this;
50306     }
50307 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50308     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ )
50309     {
50310       pNext = pNext_;
50311       return *this;
50312     }
50313 
setTexelBufferAlignmentVULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50314     PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( vk::Bool32 texelBufferAlignment_ )
50315     {
50316       texelBufferAlignment = texelBufferAlignment_;
50317       return *this;
50318     }
50319 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50320     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const
50321     {
50322       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
50323     }
50324 
operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50325     operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &()
50326     {
50327       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
50328     }
50329 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50330     bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const
50331     {
50332       return ( sType == rhs.sType )
50333           && ( pNext == rhs.pNext )
50334           && ( texelBufferAlignment == rhs.texelBufferAlignment );
50335     }
50336 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT50337     bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const
50338     {
50339       return !operator==( rhs );
50340     }
50341 
50342   private:
50343     using layout::PhysicalDeviceTexelBufferAlignmentFeaturesEXT::sType;
50344   };
50345   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
50346   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50347 
50348   namespace layout
50349   {
50350     struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
50351     {
50352     protected:
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50353       PhysicalDeviceTexelBufferAlignmentPropertiesEXT( vk::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = 0,
50354                                                        vk::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = 0,
50355                                                        vk::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = 0,
50356                                                        vk::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = 0 )
50357         : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
50358         , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
50359         , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
50360         , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
50361       {}
50362 
PhysicalDeviceTexelBufferAlignmentPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50363       PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs )
50364       {
50365         *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(this) = rhs;
50366       }
50367 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50368       PhysicalDeviceTexelBufferAlignmentPropertiesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs )
50369       {
50370         *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(this) = rhs;
50371         return *this;
50372       }
50373 
50374     public:
50375       vk::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
50376       void* pNext = nullptr;
50377       vk::DeviceSize storageTexelBufferOffsetAlignmentBytes;
50378       vk::Bool32 storageTexelBufferOffsetSingleTexelAlignment;
50379       vk::DeviceSize uniformTexelBufferOffsetAlignmentBytes;
50380       vk::Bool32 uniformTexelBufferOffsetSingleTexelAlignment;
50381     };
50382     static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "layout struct and wrapper have different size!" );
50383   }
50384 
50385   struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT : public layout::PhysicalDeviceTexelBufferAlignmentPropertiesEXT
50386   {
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50387     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const
50388     {
50389       return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
50390     }
50391 
operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50392     operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &()
50393     {
50394       return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
50395     }
50396 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50397     bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const
50398     {
50399       return ( sType == rhs.sType )
50400           && ( pNext == rhs.pNext )
50401           && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
50402           && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
50403           && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
50404           && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
50405     }
50406 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT50407     bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const
50408     {
50409       return !operator==( rhs );
50410     }
50411 
50412   private:
50413     using layout::PhysicalDeviceTexelBufferAlignmentPropertiesEXT::sType;
50414   };
50415   static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
50416   static_assert( std::is_standard_layout<PhysicalDeviceTexelBufferAlignmentPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
50417 
50418   namespace layout
50419   {
50420     struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
50421     {
50422     protected:
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50423       PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( vk::Bool32 textureCompressionASTC_HDR_ = 0 )
50424         : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
50425       {}
50426 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50427       PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs )
50428       {
50429         *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(this) = rhs;
50430       }
50431 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50432       PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs )
50433       {
50434         *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(this) = rhs;
50435         return *this;
50436       }
50437 
50438     public:
50439       vk::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT;
50440       const void* pNext = nullptr;
50441       vk::Bool32 textureCompressionASTC_HDR;
50442     };
50443     static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "layout struct and wrapper have different size!" );
50444   }
50445 
50446   struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT : public layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
50447   {
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50448     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( vk::Bool32 textureCompressionASTC_HDR_ = 0 )
50449       : layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( textureCompressionASTC_HDR_ )
50450     {}
50451 
PhysicalDeviceTextureCompressionASTCHDRFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50452     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs )
50453       : layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( rhs )
50454     {}
50455 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50456     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs )
50457     {
50458       *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(this) = rhs;
50459       return *this;
50460     }
50461 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50462     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( const void* pNext_ )
50463     {
50464       pNext = pNext_;
50465       return *this;
50466     }
50467 
setTextureCompressionASTC_HDRVULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50468     PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( vk::Bool32 textureCompressionASTC_HDR_ )
50469     {
50470       textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
50471       return *this;
50472     }
50473 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50474     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const
50475     {
50476       return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
50477     }
50478 
operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50479     operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &()
50480     {
50481       return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>( this );
50482     }
50483 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50484     bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const
50485     {
50486       return ( sType == rhs.sType )
50487           && ( pNext == rhs.pNext )
50488           && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
50489     }
50490 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT50491     bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const
50492     {
50493       return !operator==( rhs );
50494     }
50495 
50496   private:
50497     using layout::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT::sType;
50498   };
50499   static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" );
50500   static_assert( std::is_standard_layout<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50501 
50502   namespace layout
50503   {
50504     struct PhysicalDeviceTransformFeedbackFeaturesEXT
50505     {
50506     protected:
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackFeaturesEXT50507       PhysicalDeviceTransformFeedbackFeaturesEXT( vk::Bool32 transformFeedback_ = 0,
50508                                                   vk::Bool32 geometryStreams_ = 0 )
50509         : transformFeedback( transformFeedback_ )
50510         , geometryStreams( geometryStreams_ )
50511       {}
50512 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackFeaturesEXT50513       PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
50514       {
50515         *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(this) = rhs;
50516       }
50517 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackFeaturesEXT50518       PhysicalDeviceTransformFeedbackFeaturesEXT& operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
50519       {
50520         *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(this) = rhs;
50521         return *this;
50522       }
50523 
50524     public:
50525       vk::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
50526       void* pNext = nullptr;
50527       vk::Bool32 transformFeedback;
50528       vk::Bool32 geometryStreams;
50529     };
50530     static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "layout struct and wrapper have different size!" );
50531   }
50532 
50533   struct PhysicalDeviceTransformFeedbackFeaturesEXT : public layout::PhysicalDeviceTransformFeedbackFeaturesEXT
50534   {
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50535     PhysicalDeviceTransformFeedbackFeaturesEXT( vk::Bool32 transformFeedback_ = 0,
50536                                                 vk::Bool32 geometryStreams_ = 0 )
50537       : layout::PhysicalDeviceTransformFeedbackFeaturesEXT( transformFeedback_, geometryStreams_ )
50538     {}
50539 
PhysicalDeviceTransformFeedbackFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50540     PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
50541       : layout::PhysicalDeviceTransformFeedbackFeaturesEXT( rhs )
50542     {}
50543 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50544     PhysicalDeviceTransformFeedbackFeaturesEXT& operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
50545     {
50546       *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(this) = rhs;
50547       return *this;
50548     }
50549 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50550     PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ )
50551     {
50552       pNext = pNext_;
50553       return *this;
50554     }
50555 
setTransformFeedbackVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50556     PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( vk::Bool32 transformFeedback_ )
50557     {
50558       transformFeedback = transformFeedback_;
50559       return *this;
50560     }
50561 
setGeometryStreamsVULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50562     PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( vk::Bool32 geometryStreams_ )
50563     {
50564       geometryStreams = geometryStreams_;
50565       return *this;
50566     }
50567 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50568     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const
50569     {
50570       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
50571     }
50572 
operator VkPhysicalDeviceTransformFeedbackFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50573     operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &()
50574     {
50575       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
50576     }
50577 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50578     bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const
50579     {
50580       return ( sType == rhs.sType )
50581           && ( pNext == rhs.pNext )
50582           && ( transformFeedback == rhs.transformFeedback )
50583           && ( geometryStreams == rhs.geometryStreams );
50584     }
50585 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT50586     bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const
50587     {
50588       return !operator==( rhs );
50589     }
50590 
50591   private:
50592     using layout::PhysicalDeviceTransformFeedbackFeaturesEXT::sType;
50593   };
50594   static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
50595   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50596 
50597   namespace layout
50598   {
50599     struct PhysicalDeviceTransformFeedbackPropertiesEXT
50600     {
50601     protected:
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackPropertiesEXT50602       PhysicalDeviceTransformFeedbackPropertiesEXT( uint32_t maxTransformFeedbackStreams_ = 0,
50603                                                     uint32_t maxTransformFeedbackBuffers_ = 0,
50604                                                     vk::DeviceSize maxTransformFeedbackBufferSize_ = 0,
50605                                                     uint32_t maxTransformFeedbackStreamDataSize_ = 0,
50606                                                     uint32_t maxTransformFeedbackBufferDataSize_ = 0,
50607                                                     uint32_t maxTransformFeedbackBufferDataStride_ = 0,
50608                                                     vk::Bool32 transformFeedbackQueries_ = 0,
50609                                                     vk::Bool32 transformFeedbackStreamsLinesTriangles_ = 0,
50610                                                     vk::Bool32 transformFeedbackRasterizationStreamSelect_ = 0,
50611                                                     vk::Bool32 transformFeedbackDraw_ = 0 )
50612         : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ )
50613         , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ )
50614         , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ )
50615         , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ )
50616         , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ )
50617         , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ )
50618         , transformFeedbackQueries( transformFeedbackQueries_ )
50619         , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ )
50620         , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ )
50621         , transformFeedbackDraw( transformFeedbackDraw_ )
50622       {}
50623 
PhysicalDeviceTransformFeedbackPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackPropertiesEXT50624       PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs )
50625       {
50626         *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(this) = rhs;
50627       }
50628 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceTransformFeedbackPropertiesEXT50629       PhysicalDeviceTransformFeedbackPropertiesEXT& operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs )
50630       {
50631         *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(this) = rhs;
50632         return *this;
50633       }
50634 
50635     public:
50636       vk::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
50637       void* pNext = nullptr;
50638       uint32_t maxTransformFeedbackStreams;
50639       uint32_t maxTransformFeedbackBuffers;
50640       vk::DeviceSize maxTransformFeedbackBufferSize;
50641       uint32_t maxTransformFeedbackStreamDataSize;
50642       uint32_t maxTransformFeedbackBufferDataSize;
50643       uint32_t maxTransformFeedbackBufferDataStride;
50644       vk::Bool32 transformFeedbackQueries;
50645       vk::Bool32 transformFeedbackStreamsLinesTriangles;
50646       vk::Bool32 transformFeedbackRasterizationStreamSelect;
50647       vk::Bool32 transformFeedbackDraw;
50648     };
50649     static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "layout struct and wrapper have different size!" );
50650   }
50651 
50652   struct PhysicalDeviceTransformFeedbackPropertiesEXT : public layout::PhysicalDeviceTransformFeedbackPropertiesEXT
50653   {
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT50654     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const
50655     {
50656       return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
50657     }
50658 
operator VkPhysicalDeviceTransformFeedbackPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT50659     operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &()
50660     {
50661       return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
50662     }
50663 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT50664     bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const
50665     {
50666       return ( sType == rhs.sType )
50667           && ( pNext == rhs.pNext )
50668           && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
50669           && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
50670           && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
50671           && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
50672           && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
50673           && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
50674           && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
50675           && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
50676           && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
50677           && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
50678     }
50679 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT50680     bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const
50681     {
50682       return !operator==( rhs );
50683     }
50684 
50685   private:
50686     using layout::PhysicalDeviceTransformFeedbackPropertiesEXT::sType;
50687   };
50688   static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
50689   static_assert( std::is_standard_layout<PhysicalDeviceTransformFeedbackPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
50690 
50691   namespace layout
50692   {
50693     struct PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR
50694     {
50695     protected:
PhysicalDeviceUniformBufferStandardLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50696       PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( vk::Bool32 uniformBufferStandardLayout_ = 0 )
50697         : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
50698       {}
50699 
PhysicalDeviceUniformBufferStandardLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50700       PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
50701       {
50702         *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>(this) = rhs;
50703       }
50704 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50705       PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR& operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
50706       {
50707         *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>(this) = rhs;
50708         return *this;
50709       }
50710 
50711     public:
50712       vk::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
50713       void* pNext = nullptr;
50714       vk::Bool32 uniformBufferStandardLayout;
50715     };
50716     static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ), "layout struct and wrapper have different size!" );
50717   }
50718 
50719   struct PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR : public layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR
50720   {
PhysicalDeviceUniformBufferStandardLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50721     PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( vk::Bool32 uniformBufferStandardLayout_ = 0 )
50722       : layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( uniformBufferStandardLayout_ )
50723     {}
50724 
PhysicalDeviceUniformBufferStandardLayoutFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50725     PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
50726       : layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( rhs )
50727     {}
50728 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50729     PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR& operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
50730     {
50731       *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>(this) = rhs;
50732       return *this;
50733     }
50734 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50735     PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR & setPNext( void* pNext_ )
50736     {
50737       pNext = pNext_;
50738       return *this;
50739     }
50740 
setUniformBufferStandardLayoutVULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50741     PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR & setUniformBufferStandardLayout( vk::Bool32 uniformBufferStandardLayout_ )
50742     {
50743       uniformBufferStandardLayout = uniformBufferStandardLayout_;
50744       return *this;
50745     }
50746 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50747     operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const&() const
50748     {
50749       return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>( this );
50750     }
50751 
operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50752     operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR &()
50753     {
50754       return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>( this );
50755     }
50756 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50757     bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const& rhs ) const
50758     {
50759       return ( sType == rhs.sType )
50760           && ( pNext == rhs.pNext )
50761           && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
50762     }
50763 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR50764     bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const& rhs ) const
50765     {
50766       return !operator==( rhs );
50767     }
50768 
50769   private:
50770     using layout::PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR::sType;
50771   };
50772   static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ), "struct and wrapper have different size!" );
50773   static_assert( std::is_standard_layout<PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
50774 
50775   namespace layout
50776   {
50777     struct PhysicalDeviceVariablePointersFeatures
50778     {
50779     protected:
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVariablePointersFeatures50780       PhysicalDeviceVariablePointersFeatures( vk::Bool32 variablePointersStorageBuffer_ = 0,
50781                                               vk::Bool32 variablePointers_ = 0 )
50782         : variablePointersStorageBuffer( variablePointersStorageBuffer_ )
50783         , variablePointers( variablePointers_ )
50784       {}
50785 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVariablePointersFeatures50786       PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs )
50787       {
50788         *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(this) = rhs;
50789       }
50790 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVariablePointersFeatures50791       PhysicalDeviceVariablePointersFeatures& operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs )
50792       {
50793         *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(this) = rhs;
50794         return *this;
50795       }
50796 
50797     public:
50798       vk::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
50799       void* pNext = nullptr;
50800       vk::Bool32 variablePointersStorageBuffer;
50801       vk::Bool32 variablePointers;
50802     };
50803     static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "layout struct and wrapper have different size!" );
50804   }
50805 
50806   struct PhysicalDeviceVariablePointersFeatures : public layout::PhysicalDeviceVariablePointersFeatures
50807   {
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50808     PhysicalDeviceVariablePointersFeatures( vk::Bool32 variablePointersStorageBuffer_ = 0,
50809                                             vk::Bool32 variablePointers_ = 0 )
50810       : layout::PhysicalDeviceVariablePointersFeatures( variablePointersStorageBuffer_, variablePointers_ )
50811     {}
50812 
PhysicalDeviceVariablePointersFeaturesVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50813     PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs )
50814       : layout::PhysicalDeviceVariablePointersFeatures( rhs )
50815     {}
50816 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50817     PhysicalDeviceVariablePointersFeatures& operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs )
50818     {
50819       *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(this) = rhs;
50820       return *this;
50821     }
50822 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50823     PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ )
50824     {
50825       pNext = pNext_;
50826       return *this;
50827     }
50828 
setVariablePointersStorageBufferVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50829     PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( vk::Bool32 variablePointersStorageBuffer_ )
50830     {
50831       variablePointersStorageBuffer = variablePointersStorageBuffer_;
50832       return *this;
50833     }
50834 
setVariablePointersVULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50835     PhysicalDeviceVariablePointersFeatures & setVariablePointers( vk::Bool32 variablePointers_ )
50836     {
50837       variablePointers = variablePointers_;
50838       return *this;
50839     }
50840 
operator VkPhysicalDeviceVariablePointersFeatures const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50841     operator VkPhysicalDeviceVariablePointersFeatures const&() const
50842     {
50843       return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
50844     }
50845 
operator VkPhysicalDeviceVariablePointersFeatures&VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50846     operator VkPhysicalDeviceVariablePointersFeatures &()
50847     {
50848       return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
50849     }
50850 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50851     bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const
50852     {
50853       return ( sType == rhs.sType )
50854           && ( pNext == rhs.pNext )
50855           && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
50856           && ( variablePointers == rhs.variablePointers );
50857     }
50858 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures50859     bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const
50860     {
50861       return !operator==( rhs );
50862     }
50863 
50864   private:
50865     using layout::PhysicalDeviceVariablePointersFeatures::sType;
50866   };
50867   static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
50868   static_assert( std::is_standard_layout<PhysicalDeviceVariablePointersFeatures>::value, "struct wrapper is not a standard layout!" );
50869 
50870   namespace layout
50871   {
50872     struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
50873     {
50874     protected:
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50875       PhysicalDeviceVertexAttributeDivisorFeaturesEXT( vk::Bool32 vertexAttributeInstanceRateDivisor_ = 0,
50876                                                        vk::Bool32 vertexAttributeInstanceRateZeroDivisor_ = 0 )
50877         : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
50878         , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
50879       {}
50880 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50881       PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
50882       {
50883         *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this) = rhs;
50884       }
50885 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50886       PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
50887       {
50888         *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this) = rhs;
50889         return *this;
50890       }
50891 
50892     public:
50893       vk::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
50894       void* pNext = nullptr;
50895       vk::Bool32 vertexAttributeInstanceRateDivisor;
50896       vk::Bool32 vertexAttributeInstanceRateZeroDivisor;
50897     };
50898     static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "layout struct and wrapper have different size!" );
50899   }
50900 
50901   struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT : public layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT
50902   {
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50903     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( vk::Bool32 vertexAttributeInstanceRateDivisor_ = 0,
50904                                                      vk::Bool32 vertexAttributeInstanceRateZeroDivisor_ = 0 )
50905       : layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT( vertexAttributeInstanceRateDivisor_, vertexAttributeInstanceRateZeroDivisor_ )
50906     {}
50907 
PhysicalDeviceVertexAttributeDivisorFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50908     PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
50909       : layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT( rhs )
50910     {}
50911 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50912     PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
50913     {
50914       *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this) = rhs;
50915       return *this;
50916     }
50917 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50918     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ )
50919     {
50920       pNext = pNext_;
50921       return *this;
50922     }
50923 
setVertexAttributeInstanceRateDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50924     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( vk::Bool32 vertexAttributeInstanceRateDivisor_ )
50925     {
50926       vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
50927       return *this;
50928     }
50929 
setVertexAttributeInstanceRateZeroDivisorVULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50930     PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( vk::Bool32 vertexAttributeInstanceRateZeroDivisor_ )
50931     {
50932       vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
50933       return *this;
50934     }
50935 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50936     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const
50937     {
50938       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
50939     }
50940 
operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50941     operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &()
50942     {
50943       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
50944     }
50945 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50946     bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const
50947     {
50948       return ( sType == rhs.sType )
50949           && ( pNext == rhs.pNext )
50950           && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
50951           && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
50952     }
50953 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT50954     bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const
50955     {
50956       return !operator==( rhs );
50957     }
50958 
50959   private:
50960     using layout::PhysicalDeviceVertexAttributeDivisorFeaturesEXT::sType;
50961   };
50962   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
50963   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
50964 
50965   namespace layout
50966   {
50967     struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
50968     {
50969     protected:
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorPropertiesEXT50970       PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = 0 )
50971         : maxVertexAttribDivisor( maxVertexAttribDivisor_ )
50972       {}
50973 
PhysicalDeviceVertexAttributeDivisorPropertiesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorPropertiesEXT50974       PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs )
50975       {
50976         *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(this) = rhs;
50977       }
50978 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVertexAttributeDivisorPropertiesEXT50979       PhysicalDeviceVertexAttributeDivisorPropertiesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs )
50980       {
50981         *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(this) = rhs;
50982         return *this;
50983       }
50984 
50985     public:
50986       vk::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
50987       void* pNext = nullptr;
50988       uint32_t maxVertexAttribDivisor;
50989     };
50990     static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "layout struct and wrapper have different size!" );
50991   }
50992 
50993   struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT : public layout::PhysicalDeviceVertexAttributeDivisorPropertiesEXT
50994   {
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT50995     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const
50996     {
50997       return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
50998     }
50999 
operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT51000     operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &()
51001     {
51002       return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
51003     }
51004 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT51005     bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const
51006     {
51007       return ( sType == rhs.sType )
51008           && ( pNext == rhs.pNext )
51009           && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
51010     }
51011 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT51012     bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const
51013     {
51014       return !operator==( rhs );
51015     }
51016 
51017   private:
51018     using layout::PhysicalDeviceVertexAttributeDivisorPropertiesEXT::sType;
51019   };
51020   static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
51021   static_assert( std::is_standard_layout<PhysicalDeviceVertexAttributeDivisorPropertiesEXT>::value, "struct wrapper is not a standard layout!" );
51022 
51023   namespace layout
51024   {
51025     struct PhysicalDeviceVulkanMemoryModelFeaturesKHR
51026     {
51027     protected:
PhysicalDeviceVulkanMemoryModelFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR51028       PhysicalDeviceVulkanMemoryModelFeaturesKHR( vk::Bool32 vulkanMemoryModel_ = 0,
51029                                                   vk::Bool32 vulkanMemoryModelDeviceScope_ = 0,
51030                                                   vk::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = 0 )
51031         : vulkanMemoryModel( vulkanMemoryModel_ )
51032         , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
51033         , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
51034       {}
51035 
PhysicalDeviceVulkanMemoryModelFeaturesKHRVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR51036       PhysicalDeviceVulkanMemoryModelFeaturesKHR( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
51037       {
51038         *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this) = rhs;
51039       }
51040 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR51041       PhysicalDeviceVulkanMemoryModelFeaturesKHR& operator=( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
51042       {
51043         *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this) = rhs;
51044         return *this;
51045       }
51046 
51047     public:
51048       vk::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR;
51049       void* pNext = nullptr;
51050       vk::Bool32 vulkanMemoryModel;
51051       vk::Bool32 vulkanMemoryModelDeviceScope;
51052       vk::Bool32 vulkanMemoryModelAvailabilityVisibilityChains;
51053     };
51054     static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeaturesKHR ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR ), "layout struct and wrapper have different size!" );
51055   }
51056 
51057   struct PhysicalDeviceVulkanMemoryModelFeaturesKHR : public layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR
51058   {
PhysicalDeviceVulkanMemoryModelFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51059     PhysicalDeviceVulkanMemoryModelFeaturesKHR( vk::Bool32 vulkanMemoryModel_ = 0,
51060                                                 vk::Bool32 vulkanMemoryModelDeviceScope_ = 0,
51061                                                 vk::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = 0 )
51062       : layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR( vulkanMemoryModel_, vulkanMemoryModelDeviceScope_, vulkanMemoryModelAvailabilityVisibilityChains_ )
51063     {}
51064 
PhysicalDeviceVulkanMemoryModelFeaturesKHRVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51065     PhysicalDeviceVulkanMemoryModelFeaturesKHR( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
51066       : layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR( rhs )
51067     {}
51068 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51069     PhysicalDeviceVulkanMemoryModelFeaturesKHR& operator=( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
51070     {
51071       *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this) = rhs;
51072       return *this;
51073     }
51074 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51075     PhysicalDeviceVulkanMemoryModelFeaturesKHR & setPNext( void* pNext_ )
51076     {
51077       pNext = pNext_;
51078       return *this;
51079     }
51080 
setVulkanMemoryModelVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51081     PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModel( vk::Bool32 vulkanMemoryModel_ )
51082     {
51083       vulkanMemoryModel = vulkanMemoryModel_;
51084       return *this;
51085     }
51086 
setVulkanMemoryModelDeviceScopeVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51087     PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModelDeviceScope( vk::Bool32 vulkanMemoryModelDeviceScope_ )
51088     {
51089       vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
51090       return *this;
51091     }
51092 
setVulkanMemoryModelAvailabilityVisibilityChainsVULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51093     PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModelAvailabilityVisibilityChains( vk::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ )
51094     {
51095       vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
51096       return *this;
51097     }
51098 
operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51099     operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const&() const
51100     {
51101       return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>( this );
51102     }
51103 
operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR&VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51104     operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR &()
51105     {
51106       return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>( this );
51107     }
51108 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51109     bool operator==( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const
51110     {
51111       return ( sType == rhs.sType )
51112           && ( pNext == rhs.pNext )
51113           && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
51114           && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
51115           && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
51116     }
51117 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeaturesKHR51118     bool operator!=( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const
51119     {
51120       return !operator==( rhs );
51121     }
51122 
51123   private:
51124     using layout::PhysicalDeviceVulkanMemoryModelFeaturesKHR::sType;
51125   };
51126   static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeaturesKHR ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR ), "struct and wrapper have different size!" );
51127   static_assert( std::is_standard_layout<PhysicalDeviceVulkanMemoryModelFeaturesKHR>::value, "struct wrapper is not a standard layout!" );
51128 
51129   namespace layout
51130   {
51131     struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
51132     {
51133     protected:
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT51134       PhysicalDeviceYcbcrImageArraysFeaturesEXT( vk::Bool32 ycbcrImageArrays_ = 0 )
51135         : ycbcrImageArrays( ycbcrImageArrays_ )
51136       {}
51137 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT51138       PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
51139       {
51140         *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(this) = rhs;
51141       }
51142 
operator =VULKAN_HPP_NAMESPACE::layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT51143       PhysicalDeviceYcbcrImageArraysFeaturesEXT& operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
51144       {
51145         *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(this) = rhs;
51146         return *this;
51147       }
51148 
51149     public:
51150       vk::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
51151       void* pNext = nullptr;
51152       vk::Bool32 ycbcrImageArrays;
51153     };
51154     static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "layout struct and wrapper have different size!" );
51155   }
51156 
51157   struct PhysicalDeviceYcbcrImageArraysFeaturesEXT : public layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT
51158   {
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51159     PhysicalDeviceYcbcrImageArraysFeaturesEXT( vk::Bool32 ycbcrImageArrays_ = 0 )
51160       : layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT( ycbcrImageArrays_ )
51161     {}
51162 
PhysicalDeviceYcbcrImageArraysFeaturesEXTVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51163     PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
51164       : layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT( rhs )
51165     {}
51166 
operator =VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51167     PhysicalDeviceYcbcrImageArraysFeaturesEXT& operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
51168     {
51169       *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(this) = rhs;
51170       return *this;
51171     }
51172 
setPNextVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51173     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ )
51174     {
51175       pNext = pNext_;
51176       return *this;
51177     }
51178 
setYcbcrImageArraysVULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51179     PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( vk::Bool32 ycbcrImageArrays_ )
51180     {
51181       ycbcrImageArrays = ycbcrImageArrays_;
51182       return *this;
51183     }
51184 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51185     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const
51186     {
51187       return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
51188     }
51189 
operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51190     operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &()
51191     {
51192       return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
51193     }
51194 
operator ==VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51195     bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const
51196     {
51197       return ( sType == rhs.sType )
51198           && ( pNext == rhs.pNext )
51199           && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
51200     }
51201 
operator !=VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT51202     bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const
51203     {
51204       return !operator==( rhs );
51205     }
51206 
51207   private:
51208     using layout::PhysicalDeviceYcbcrImageArraysFeaturesEXT::sType;
51209   };
51210   static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
51211   static_assert( std::is_standard_layout<PhysicalDeviceYcbcrImageArraysFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
51212 
51213   namespace layout
51214   {
51215     struct PipelineCacheCreateInfo
51216     {
51217     protected:
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineCacheCreateInfo51218       PipelineCacheCreateInfo( vk::PipelineCacheCreateFlags flags_ = vk::PipelineCacheCreateFlags(),
51219                                size_t initialDataSize_ = 0,
51220                                const void* pInitialData_ = nullptr )
51221         : flags( flags_ )
51222         , initialDataSize( initialDataSize_ )
51223         , pInitialData( pInitialData_ )
51224       {}
51225 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineCacheCreateInfo51226       PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs )
51227       {
51228         *reinterpret_cast<VkPipelineCacheCreateInfo*>(this) = rhs;
51229       }
51230 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCacheCreateInfo51231       PipelineCacheCreateInfo& operator=( VkPipelineCacheCreateInfo const & rhs )
51232       {
51233         *reinterpret_cast<VkPipelineCacheCreateInfo*>(this) = rhs;
51234         return *this;
51235       }
51236 
51237     public:
51238       vk::StructureType sType = StructureType::ePipelineCacheCreateInfo;
51239       const void* pNext = nullptr;
51240       vk::PipelineCacheCreateFlags flags;
51241       size_t initialDataSize;
51242       const void* pInitialData;
51243     };
51244     static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "layout struct and wrapper have different size!" );
51245   }
51246 
51247   struct PipelineCacheCreateInfo : public layout::PipelineCacheCreateInfo
51248   {
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51249     PipelineCacheCreateInfo( vk::PipelineCacheCreateFlags flags_ = vk::PipelineCacheCreateFlags(),
51250                              size_t initialDataSize_ = 0,
51251                              const void* pInitialData_ = nullptr )
51252       : layout::PipelineCacheCreateInfo( flags_, initialDataSize_, pInitialData_ )
51253     {}
51254 
PipelineCacheCreateInfoVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51255     PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs )
51256       : layout::PipelineCacheCreateInfo( rhs )
51257     {}
51258 
operator =VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51259     PipelineCacheCreateInfo& operator=( VkPipelineCacheCreateInfo const & rhs )
51260     {
51261       *reinterpret_cast<VkPipelineCacheCreateInfo*>(this) = rhs;
51262       return *this;
51263     }
51264 
setPNextVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51265     PipelineCacheCreateInfo & setPNext( const void* pNext_ )
51266     {
51267       pNext = pNext_;
51268       return *this;
51269     }
51270 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51271     PipelineCacheCreateInfo & setFlags( vk::PipelineCacheCreateFlags flags_ )
51272     {
51273       flags = flags_;
51274       return *this;
51275     }
51276 
setInitialDataSizeVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51277     PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ )
51278     {
51279       initialDataSize = initialDataSize_;
51280       return *this;
51281     }
51282 
setPInitialDataVULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51283     PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ )
51284     {
51285       pInitialData = pInitialData_;
51286       return *this;
51287     }
51288 
operator VkPipelineCacheCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51289     operator VkPipelineCacheCreateInfo const&() const
51290     {
51291       return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
51292     }
51293 
operator VkPipelineCacheCreateInfo&VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51294     operator VkPipelineCacheCreateInfo &()
51295     {
51296       return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
51297     }
51298 
operator ==VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51299     bool operator==( PipelineCacheCreateInfo const& rhs ) const
51300     {
51301       return ( sType == rhs.sType )
51302           && ( pNext == rhs.pNext )
51303           && ( flags == rhs.flags )
51304           && ( initialDataSize == rhs.initialDataSize )
51305           && ( pInitialData == rhs.pInitialData );
51306     }
51307 
operator !=VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo51308     bool operator!=( PipelineCacheCreateInfo const& rhs ) const
51309     {
51310       return !operator==( rhs );
51311     }
51312 
51313   private:
51314     using layout::PipelineCacheCreateInfo::sType;
51315   };
51316   static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
51317   static_assert( std::is_standard_layout<PipelineCacheCreateInfo>::value, "struct wrapper is not a standard layout!" );
51318 
51319   namespace layout
51320   {
51321     struct PipelineColorBlendAdvancedStateCreateInfoEXT
51322     {
51323     protected:
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineColorBlendAdvancedStateCreateInfoEXT51324       PipelineColorBlendAdvancedStateCreateInfoEXT( vk::Bool32 srcPremultiplied_ = 0,
51325                                                     vk::Bool32 dstPremultiplied_ = 0,
51326                                                     vk::BlendOverlapEXT blendOverlap_ = vk::BlendOverlapEXT::eUncorrelated )
51327         : srcPremultiplied( srcPremultiplied_ )
51328         , dstPremultiplied( dstPremultiplied_ )
51329         , blendOverlap( blendOverlap_ )
51330       {}
51331 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineColorBlendAdvancedStateCreateInfoEXT51332       PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
51333       {
51334         *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this) = rhs;
51335       }
51336 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineColorBlendAdvancedStateCreateInfoEXT51337       PipelineColorBlendAdvancedStateCreateInfoEXT& operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
51338       {
51339         *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this) = rhs;
51340         return *this;
51341       }
51342 
51343     public:
51344       vk::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
51345       const void* pNext = nullptr;
51346       vk::Bool32 srcPremultiplied;
51347       vk::Bool32 dstPremultiplied;
51348       vk::BlendOverlapEXT blendOverlap;
51349     };
51350     static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
51351   }
51352 
51353   struct PipelineColorBlendAdvancedStateCreateInfoEXT : public layout::PipelineColorBlendAdvancedStateCreateInfoEXT
51354   {
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51355     PipelineColorBlendAdvancedStateCreateInfoEXT( vk::Bool32 srcPremultiplied_ = 0,
51356                                                   vk::Bool32 dstPremultiplied_ = 0,
51357                                                   vk::BlendOverlapEXT blendOverlap_ = vk::BlendOverlapEXT::eUncorrelated )
51358       : layout::PipelineColorBlendAdvancedStateCreateInfoEXT( srcPremultiplied_, dstPremultiplied_, blendOverlap_ )
51359     {}
51360 
PipelineColorBlendAdvancedStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51361     PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
51362       : layout::PipelineColorBlendAdvancedStateCreateInfoEXT( rhs )
51363     {}
51364 
operator =VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51365     PipelineColorBlendAdvancedStateCreateInfoEXT& operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
51366     {
51367       *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this) = rhs;
51368       return *this;
51369     }
51370 
setPNextVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51371     PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ )
51372     {
51373       pNext = pNext_;
51374       return *this;
51375     }
51376 
setSrcPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51377     PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( vk::Bool32 srcPremultiplied_ )
51378     {
51379       srcPremultiplied = srcPremultiplied_;
51380       return *this;
51381     }
51382 
setDstPremultipliedVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51383     PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( vk::Bool32 dstPremultiplied_ )
51384     {
51385       dstPremultiplied = dstPremultiplied_;
51386       return *this;
51387     }
51388 
setBlendOverlapVULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51389     PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( vk::BlendOverlapEXT blendOverlap_ )
51390     {
51391       blendOverlap = blendOverlap_;
51392       return *this;
51393     }
51394 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51395     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const
51396     {
51397       return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
51398     }
51399 
operator VkPipelineColorBlendAdvancedStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51400     operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &()
51401     {
51402       return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
51403     }
51404 
operator ==VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51405     bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const
51406     {
51407       return ( sType == rhs.sType )
51408           && ( pNext == rhs.pNext )
51409           && ( srcPremultiplied == rhs.srcPremultiplied )
51410           && ( dstPremultiplied == rhs.dstPremultiplied )
51411           && ( blendOverlap == rhs.blendOverlap );
51412     }
51413 
operator !=VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT51414     bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const
51415     {
51416       return !operator==( rhs );
51417     }
51418 
51419   private:
51420     using layout::PipelineColorBlendAdvancedStateCreateInfoEXT::sType;
51421   };
51422   static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
51423   static_assert( std::is_standard_layout<PipelineColorBlendAdvancedStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
51424 
51425   namespace layout
51426   {
51427     struct PipelineCompilerControlCreateInfoAMD
51428     {
51429     protected:
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::PipelineCompilerControlCreateInfoAMD51430       PipelineCompilerControlCreateInfoAMD( vk::PipelineCompilerControlFlagsAMD compilerControlFlags_ = vk::PipelineCompilerControlFlagsAMD() )
51431         : compilerControlFlags( compilerControlFlags_ )
51432       {}
51433 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::PipelineCompilerControlCreateInfoAMD51434       PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs )
51435       {
51436         *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(this) = rhs;
51437       }
51438 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCompilerControlCreateInfoAMD51439       PipelineCompilerControlCreateInfoAMD& operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs )
51440       {
51441         *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(this) = rhs;
51442         return *this;
51443       }
51444 
51445     public:
51446       vk::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
51447       const void* pNext = nullptr;
51448       vk::PipelineCompilerControlFlagsAMD compilerControlFlags;
51449     };
51450     static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "layout struct and wrapper have different size!" );
51451   }
51452 
51453   struct PipelineCompilerControlCreateInfoAMD : public layout::PipelineCompilerControlCreateInfoAMD
51454   {
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51455     PipelineCompilerControlCreateInfoAMD( vk::PipelineCompilerControlFlagsAMD compilerControlFlags_ = vk::PipelineCompilerControlFlagsAMD() )
51456       : layout::PipelineCompilerControlCreateInfoAMD( compilerControlFlags_ )
51457     {}
51458 
PipelineCompilerControlCreateInfoAMDVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51459     PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs )
51460       : layout::PipelineCompilerControlCreateInfoAMD( rhs )
51461     {}
51462 
operator =VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51463     PipelineCompilerControlCreateInfoAMD& operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs )
51464     {
51465       *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(this) = rhs;
51466       return *this;
51467     }
51468 
setPNextVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51469     PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ )
51470     {
51471       pNext = pNext_;
51472       return *this;
51473     }
51474 
setCompilerControlFlagsVULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51475     PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( vk::PipelineCompilerControlFlagsAMD compilerControlFlags_ )
51476     {
51477       compilerControlFlags = compilerControlFlags_;
51478       return *this;
51479     }
51480 
operator VkPipelineCompilerControlCreateInfoAMD const&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51481     operator VkPipelineCompilerControlCreateInfoAMD const&() const
51482     {
51483       return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>( this );
51484     }
51485 
operator VkPipelineCompilerControlCreateInfoAMD&VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51486     operator VkPipelineCompilerControlCreateInfoAMD &()
51487     {
51488       return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>( this );
51489     }
51490 
operator ==VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51491     bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const
51492     {
51493       return ( sType == rhs.sType )
51494           && ( pNext == rhs.pNext )
51495           && ( compilerControlFlags == rhs.compilerControlFlags );
51496     }
51497 
operator !=VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD51498     bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const
51499     {
51500       return !operator==( rhs );
51501     }
51502 
51503   private:
51504     using layout::PipelineCompilerControlCreateInfoAMD::sType;
51505   };
51506   static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" );
51507   static_assert( std::is_standard_layout<PipelineCompilerControlCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
51508 
51509   namespace layout
51510   {
51511     struct PipelineCoverageModulationStateCreateInfoNV
51512     {
51513     protected:
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageModulationStateCreateInfoNV51514       PipelineCoverageModulationStateCreateInfoNV( vk::PipelineCoverageModulationStateCreateFlagsNV flags_ = vk::PipelineCoverageModulationStateCreateFlagsNV(),
51515                                                    vk::CoverageModulationModeNV coverageModulationMode_ = vk::CoverageModulationModeNV::eNone,
51516                                                    vk::Bool32 coverageModulationTableEnable_ = 0,
51517                                                    uint32_t coverageModulationTableCount_ = 0,
51518                                                    const float* pCoverageModulationTable_ = nullptr )
51519         : flags( flags_ )
51520         , coverageModulationMode( coverageModulationMode_ )
51521         , coverageModulationTableEnable( coverageModulationTableEnable_ )
51522         , coverageModulationTableCount( coverageModulationTableCount_ )
51523         , pCoverageModulationTable( pCoverageModulationTable_ )
51524       {}
51525 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageModulationStateCreateInfoNV51526       PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
51527       {
51528         *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this) = rhs;
51529       }
51530 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCoverageModulationStateCreateInfoNV51531       PipelineCoverageModulationStateCreateInfoNV& operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
51532       {
51533         *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this) = rhs;
51534         return *this;
51535       }
51536 
51537     public:
51538       vk::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
51539       const void* pNext = nullptr;
51540       vk::PipelineCoverageModulationStateCreateFlagsNV flags;
51541       vk::CoverageModulationModeNV coverageModulationMode;
51542       vk::Bool32 coverageModulationTableEnable;
51543       uint32_t coverageModulationTableCount;
51544       const float* pCoverageModulationTable;
51545     };
51546     static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "layout struct and wrapper have different size!" );
51547   }
51548 
51549   struct PipelineCoverageModulationStateCreateInfoNV : public layout::PipelineCoverageModulationStateCreateInfoNV
51550   {
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51551     PipelineCoverageModulationStateCreateInfoNV( vk::PipelineCoverageModulationStateCreateFlagsNV flags_ = vk::PipelineCoverageModulationStateCreateFlagsNV(),
51552                                                  vk::CoverageModulationModeNV coverageModulationMode_ = vk::CoverageModulationModeNV::eNone,
51553                                                  vk::Bool32 coverageModulationTableEnable_ = 0,
51554                                                  uint32_t coverageModulationTableCount_ = 0,
51555                                                  const float* pCoverageModulationTable_ = nullptr )
51556       : layout::PipelineCoverageModulationStateCreateInfoNV( flags_, coverageModulationMode_, coverageModulationTableEnable_, coverageModulationTableCount_, pCoverageModulationTable_ )
51557     {}
51558 
PipelineCoverageModulationStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51559     PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
51560       : layout::PipelineCoverageModulationStateCreateInfoNV( rhs )
51561     {}
51562 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51563     PipelineCoverageModulationStateCreateInfoNV& operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
51564     {
51565       *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this) = rhs;
51566       return *this;
51567     }
51568 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51569     PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ )
51570     {
51571       pNext = pNext_;
51572       return *this;
51573     }
51574 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51575     PipelineCoverageModulationStateCreateInfoNV & setFlags( vk::PipelineCoverageModulationStateCreateFlagsNV flags_ )
51576     {
51577       flags = flags_;
51578       return *this;
51579     }
51580 
setCoverageModulationModeVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51581     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( vk::CoverageModulationModeNV coverageModulationMode_ )
51582     {
51583       coverageModulationMode = coverageModulationMode_;
51584       return *this;
51585     }
51586 
setCoverageModulationTableEnableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51587     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( vk::Bool32 coverageModulationTableEnable_ )
51588     {
51589       coverageModulationTableEnable = coverageModulationTableEnable_;
51590       return *this;
51591     }
51592 
setCoverageModulationTableCountVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51593     PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ )
51594     {
51595       coverageModulationTableCount = coverageModulationTableCount_;
51596       return *this;
51597     }
51598 
setPCoverageModulationTableVULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51599     PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ )
51600     {
51601       pCoverageModulationTable = pCoverageModulationTable_;
51602       return *this;
51603     }
51604 
operator VkPipelineCoverageModulationStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51605     operator VkPipelineCoverageModulationStateCreateInfoNV const&() const
51606     {
51607       return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
51608     }
51609 
operator VkPipelineCoverageModulationStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51610     operator VkPipelineCoverageModulationStateCreateInfoNV &()
51611     {
51612       return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
51613     }
51614 
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51615     bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const
51616     {
51617       return ( sType == rhs.sType )
51618           && ( pNext == rhs.pNext )
51619           && ( flags == rhs.flags )
51620           && ( coverageModulationMode == rhs.coverageModulationMode )
51621           && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
51622           && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
51623           && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
51624     }
51625 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV51626     bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const
51627     {
51628       return !operator==( rhs );
51629     }
51630 
51631   private:
51632     using layout::PipelineCoverageModulationStateCreateInfoNV::sType;
51633   };
51634   static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
51635   static_assert( std::is_standard_layout<PipelineCoverageModulationStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
51636 
51637   namespace layout
51638   {
51639     struct PipelineCoverageReductionStateCreateInfoNV
51640     {
51641     protected:
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageReductionStateCreateInfoNV51642       PipelineCoverageReductionStateCreateInfoNV( vk::PipelineCoverageReductionStateCreateFlagsNV flags_ = vk::PipelineCoverageReductionStateCreateFlagsNV(),
51643                                                   vk::CoverageReductionModeNV coverageReductionMode_ = vk::CoverageReductionModeNV::eMerge )
51644         : flags( flags_ )
51645         , coverageReductionMode( coverageReductionMode_ )
51646       {}
51647 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageReductionStateCreateInfoNV51648       PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
51649       {
51650         *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(this) = rhs;
51651       }
51652 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCoverageReductionStateCreateInfoNV51653       PipelineCoverageReductionStateCreateInfoNV& operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
51654       {
51655         *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(this) = rhs;
51656         return *this;
51657       }
51658 
51659     public:
51660       vk::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
51661       const void* pNext = nullptr;
51662       vk::PipelineCoverageReductionStateCreateFlagsNV flags;
51663       vk::CoverageReductionModeNV coverageReductionMode;
51664     };
51665     static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "layout struct and wrapper have different size!" );
51666   }
51667 
51668   struct PipelineCoverageReductionStateCreateInfoNV : public layout::PipelineCoverageReductionStateCreateInfoNV
51669   {
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51670     PipelineCoverageReductionStateCreateInfoNV( vk::PipelineCoverageReductionStateCreateFlagsNV flags_ = vk::PipelineCoverageReductionStateCreateFlagsNV(),
51671                                                 vk::CoverageReductionModeNV coverageReductionMode_ = vk::CoverageReductionModeNV::eMerge )
51672       : layout::PipelineCoverageReductionStateCreateInfoNV( flags_, coverageReductionMode_ )
51673     {}
51674 
PipelineCoverageReductionStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51675     PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
51676       : layout::PipelineCoverageReductionStateCreateInfoNV( rhs )
51677     {}
51678 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51679     PipelineCoverageReductionStateCreateInfoNV& operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
51680     {
51681       *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(this) = rhs;
51682       return *this;
51683     }
51684 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51685     PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ )
51686     {
51687       pNext = pNext_;
51688       return *this;
51689     }
51690 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51691     PipelineCoverageReductionStateCreateInfoNV & setFlags( vk::PipelineCoverageReductionStateCreateFlagsNV flags_ )
51692     {
51693       flags = flags_;
51694       return *this;
51695     }
51696 
setCoverageReductionModeVULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51697     PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( vk::CoverageReductionModeNV coverageReductionMode_ )
51698     {
51699       coverageReductionMode = coverageReductionMode_;
51700       return *this;
51701     }
51702 
operator VkPipelineCoverageReductionStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51703     operator VkPipelineCoverageReductionStateCreateInfoNV const&() const
51704     {
51705       return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
51706     }
51707 
operator VkPipelineCoverageReductionStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51708     operator VkPipelineCoverageReductionStateCreateInfoNV &()
51709     {
51710       return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
51711     }
51712 
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51713     bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const
51714     {
51715       return ( sType == rhs.sType )
51716           && ( pNext == rhs.pNext )
51717           && ( flags == rhs.flags )
51718           && ( coverageReductionMode == rhs.coverageReductionMode );
51719     }
51720 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV51721     bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const
51722     {
51723       return !operator==( rhs );
51724     }
51725 
51726   private:
51727     using layout::PipelineCoverageReductionStateCreateInfoNV::sType;
51728   };
51729   static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
51730   static_assert( std::is_standard_layout<PipelineCoverageReductionStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
51731 
51732   namespace layout
51733   {
51734     struct PipelineCoverageToColorStateCreateInfoNV
51735     {
51736     protected:
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageToColorStateCreateInfoNV51737       PipelineCoverageToColorStateCreateInfoNV( vk::PipelineCoverageToColorStateCreateFlagsNV flags_ = vk::PipelineCoverageToColorStateCreateFlagsNV(),
51738                                                 vk::Bool32 coverageToColorEnable_ = 0,
51739                                                 uint32_t coverageToColorLocation_ = 0 )
51740         : flags( flags_ )
51741         , coverageToColorEnable( coverageToColorEnable_ )
51742         , coverageToColorLocation( coverageToColorLocation_ )
51743       {}
51744 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineCoverageToColorStateCreateInfoNV51745       PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
51746       {
51747         *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this) = rhs;
51748       }
51749 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCoverageToColorStateCreateInfoNV51750       PipelineCoverageToColorStateCreateInfoNV& operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
51751       {
51752         *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this) = rhs;
51753         return *this;
51754       }
51755 
51756     public:
51757       vk::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
51758       const void* pNext = nullptr;
51759       vk::PipelineCoverageToColorStateCreateFlagsNV flags;
51760       vk::Bool32 coverageToColorEnable;
51761       uint32_t coverageToColorLocation;
51762     };
51763     static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "layout struct and wrapper have different size!" );
51764   }
51765 
51766   struct PipelineCoverageToColorStateCreateInfoNV : public layout::PipelineCoverageToColorStateCreateInfoNV
51767   {
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51768     PipelineCoverageToColorStateCreateInfoNV( vk::PipelineCoverageToColorStateCreateFlagsNV flags_ = vk::PipelineCoverageToColorStateCreateFlagsNV(),
51769                                               vk::Bool32 coverageToColorEnable_ = 0,
51770                                               uint32_t coverageToColorLocation_ = 0 )
51771       : layout::PipelineCoverageToColorStateCreateInfoNV( flags_, coverageToColorEnable_, coverageToColorLocation_ )
51772     {}
51773 
PipelineCoverageToColorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51774     PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
51775       : layout::PipelineCoverageToColorStateCreateInfoNV( rhs )
51776     {}
51777 
operator =VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51778     PipelineCoverageToColorStateCreateInfoNV& operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
51779     {
51780       *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this) = rhs;
51781       return *this;
51782     }
51783 
setPNextVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51784     PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ )
51785     {
51786       pNext = pNext_;
51787       return *this;
51788     }
51789 
setFlagsVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51790     PipelineCoverageToColorStateCreateInfoNV & setFlags( vk::PipelineCoverageToColorStateCreateFlagsNV flags_ )
51791     {
51792       flags = flags_;
51793       return *this;
51794     }
51795 
setCoverageToColorEnableVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51796     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( vk::Bool32 coverageToColorEnable_ )
51797     {
51798       coverageToColorEnable = coverageToColorEnable_;
51799       return *this;
51800     }
51801 
setCoverageToColorLocationVULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51802     PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ )
51803     {
51804       coverageToColorLocation = coverageToColorLocation_;
51805       return *this;
51806     }
51807 
operator VkPipelineCoverageToColorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51808     operator VkPipelineCoverageToColorStateCreateInfoNV const&() const
51809     {
51810       return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
51811     }
51812 
operator VkPipelineCoverageToColorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51813     operator VkPipelineCoverageToColorStateCreateInfoNV &()
51814     {
51815       return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
51816     }
51817 
operator ==VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51818     bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const
51819     {
51820       return ( sType == rhs.sType )
51821           && ( pNext == rhs.pNext )
51822           && ( flags == rhs.flags )
51823           && ( coverageToColorEnable == rhs.coverageToColorEnable )
51824           && ( coverageToColorLocation == rhs.coverageToColorLocation );
51825     }
51826 
operator !=VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV51827     bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const
51828     {
51829       return !operator==( rhs );
51830     }
51831 
51832   private:
51833     using layout::PipelineCoverageToColorStateCreateInfoNV::sType;
51834   };
51835   static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
51836   static_assert( std::is_standard_layout<PipelineCoverageToColorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
51837 
51838   struct PipelineCreationFeedbackEXT
51839   {
operator VkPipelineCreationFeedbackEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT51840     operator VkPipelineCreationFeedbackEXT const&() const
51841     {
51842       return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
51843     }
51844 
operator VkPipelineCreationFeedbackEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT51845     operator VkPipelineCreationFeedbackEXT &()
51846     {
51847       return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
51848     }
51849 
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT51850     bool operator==( PipelineCreationFeedbackEXT const& rhs ) const
51851     {
51852       return ( flags == rhs.flags )
51853           && ( duration == rhs.duration );
51854     }
51855 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT51856     bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const
51857     {
51858       return !operator==( rhs );
51859     }
51860 
51861   public:
51862     vk::PipelineCreationFeedbackFlagsEXT flags;
51863     uint64_t duration;
51864   };
51865   static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
51866   static_assert( std::is_standard_layout<PipelineCreationFeedbackEXT>::value, "struct wrapper is not a standard layout!" );
51867 
51868   namespace layout
51869   {
51870     struct PipelineCreationFeedbackCreateInfoEXT
51871     {
51872     protected:
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineCreationFeedbackCreateInfoEXT51873       PipelineCreationFeedbackCreateInfoEXT( vk::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = nullptr,
51874                                              uint32_t pipelineStageCreationFeedbackCount_ = 0,
51875                                              vk::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = nullptr )
51876         : pPipelineCreationFeedback( pPipelineCreationFeedback_ )
51877         , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
51878         , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
51879       {}
51880 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineCreationFeedbackCreateInfoEXT51881       PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
51882       {
51883         *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(this) = rhs;
51884       }
51885 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineCreationFeedbackCreateInfoEXT51886       PipelineCreationFeedbackCreateInfoEXT& operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
51887       {
51888         *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(this) = rhs;
51889         return *this;
51890       }
51891 
51892     public:
51893       vk::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
51894       const void* pNext = nullptr;
51895       vk::PipelineCreationFeedbackEXT* pPipelineCreationFeedback;
51896       uint32_t pipelineStageCreationFeedbackCount;
51897       vk::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks;
51898     };
51899     static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "layout struct and wrapper have different size!" );
51900   }
51901 
51902   struct PipelineCreationFeedbackCreateInfoEXT : public layout::PipelineCreationFeedbackCreateInfoEXT
51903   {
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51904     PipelineCreationFeedbackCreateInfoEXT( vk::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = nullptr,
51905                                            uint32_t pipelineStageCreationFeedbackCount_ = 0,
51906                                            vk::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = nullptr )
51907       : layout::PipelineCreationFeedbackCreateInfoEXT( pPipelineCreationFeedback_, pipelineStageCreationFeedbackCount_, pPipelineStageCreationFeedbacks_ )
51908     {}
51909 
PipelineCreationFeedbackCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51910     PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
51911       : layout::PipelineCreationFeedbackCreateInfoEXT( rhs )
51912     {}
51913 
operator =VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51914     PipelineCreationFeedbackCreateInfoEXT& operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
51915     {
51916       *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(this) = rhs;
51917       return *this;
51918     }
51919 
setPNextVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51920     PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ )
51921     {
51922       pNext = pNext_;
51923       return *this;
51924     }
51925 
setPPipelineCreationFeedbackVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51926     PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( vk::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ )
51927     {
51928       pPipelineCreationFeedback = pPipelineCreationFeedback_;
51929       return *this;
51930     }
51931 
setPipelineStageCreationFeedbackCountVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51932     PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ )
51933     {
51934       pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
51935       return *this;
51936     }
51937 
setPPipelineStageCreationFeedbacksVULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51938     PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( vk::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ )
51939     {
51940       pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
51941       return *this;
51942     }
51943 
operator VkPipelineCreationFeedbackCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51944     operator VkPipelineCreationFeedbackCreateInfoEXT const&() const
51945     {
51946       return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
51947     }
51948 
operator VkPipelineCreationFeedbackCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51949     operator VkPipelineCreationFeedbackCreateInfoEXT &()
51950     {
51951       return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
51952     }
51953 
operator ==VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51954     bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const
51955     {
51956       return ( sType == rhs.sType )
51957           && ( pNext == rhs.pNext )
51958           && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
51959           && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
51960           && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
51961     }
51962 
operator !=VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT51963     bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const
51964     {
51965       return !operator==( rhs );
51966     }
51967 
51968   private:
51969     using layout::PipelineCreationFeedbackCreateInfoEXT::sType;
51970   };
51971   static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
51972   static_assert( std::is_standard_layout<PipelineCreationFeedbackCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
51973 
51974   namespace layout
51975   {
51976     struct PipelineDiscardRectangleStateCreateInfoEXT
51977     {
51978     protected:
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineDiscardRectangleStateCreateInfoEXT51979       PipelineDiscardRectangleStateCreateInfoEXT( vk::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = vk::PipelineDiscardRectangleStateCreateFlagsEXT(),
51980                                                   vk::DiscardRectangleModeEXT discardRectangleMode_ = vk::DiscardRectangleModeEXT::eInclusive,
51981                                                   uint32_t discardRectangleCount_ = 0,
51982                                                   const vk::Rect2D* pDiscardRectangles_ = nullptr )
51983         : flags( flags_ )
51984         , discardRectangleMode( discardRectangleMode_ )
51985         , discardRectangleCount( discardRectangleCount_ )
51986         , pDiscardRectangles( pDiscardRectangles_ )
51987       {}
51988 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineDiscardRectangleStateCreateInfoEXT51989       PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
51990       {
51991         *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this) = rhs;
51992       }
51993 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineDiscardRectangleStateCreateInfoEXT51994       PipelineDiscardRectangleStateCreateInfoEXT& operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
51995       {
51996         *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this) = rhs;
51997         return *this;
51998       }
51999 
52000     public:
52001       vk::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
52002       const void* pNext = nullptr;
52003       vk::PipelineDiscardRectangleStateCreateFlagsEXT flags;
52004       vk::DiscardRectangleModeEXT discardRectangleMode;
52005       uint32_t discardRectangleCount;
52006       const vk::Rect2D* pDiscardRectangles;
52007     };
52008     static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
52009   }
52010 
52011   struct PipelineDiscardRectangleStateCreateInfoEXT : public layout::PipelineDiscardRectangleStateCreateInfoEXT
52012   {
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52013     PipelineDiscardRectangleStateCreateInfoEXT( vk::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = vk::PipelineDiscardRectangleStateCreateFlagsEXT(),
52014                                                 vk::DiscardRectangleModeEXT discardRectangleMode_ = vk::DiscardRectangleModeEXT::eInclusive,
52015                                                 uint32_t discardRectangleCount_ = 0,
52016                                                 const vk::Rect2D* pDiscardRectangles_ = nullptr )
52017       : layout::PipelineDiscardRectangleStateCreateInfoEXT( flags_, discardRectangleMode_, discardRectangleCount_, pDiscardRectangles_ )
52018     {}
52019 
PipelineDiscardRectangleStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52020     PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
52021       : layout::PipelineDiscardRectangleStateCreateInfoEXT( rhs )
52022     {}
52023 
operator =VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52024     PipelineDiscardRectangleStateCreateInfoEXT& operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
52025     {
52026       *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this) = rhs;
52027       return *this;
52028     }
52029 
setPNextVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52030     PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ )
52031     {
52032       pNext = pNext_;
52033       return *this;
52034     }
52035 
setFlagsVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52036     PipelineDiscardRectangleStateCreateInfoEXT & setFlags( vk::PipelineDiscardRectangleStateCreateFlagsEXT flags_ )
52037     {
52038       flags = flags_;
52039       return *this;
52040     }
52041 
setDiscardRectangleModeVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52042     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( vk::DiscardRectangleModeEXT discardRectangleMode_ )
52043     {
52044       discardRectangleMode = discardRectangleMode_;
52045       return *this;
52046     }
52047 
setDiscardRectangleCountVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52048     PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ )
52049     {
52050       discardRectangleCount = discardRectangleCount_;
52051       return *this;
52052     }
52053 
setPDiscardRectanglesVULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52054     PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const vk::Rect2D* pDiscardRectangles_ )
52055     {
52056       pDiscardRectangles = pDiscardRectangles_;
52057       return *this;
52058     }
52059 
operator VkPipelineDiscardRectangleStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52060     operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const
52061     {
52062       return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
52063     }
52064 
operator VkPipelineDiscardRectangleStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52065     operator VkPipelineDiscardRectangleStateCreateInfoEXT &()
52066     {
52067       return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
52068     }
52069 
operator ==VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52070     bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const
52071     {
52072       return ( sType == rhs.sType )
52073           && ( pNext == rhs.pNext )
52074           && ( flags == rhs.flags )
52075           && ( discardRectangleMode == rhs.discardRectangleMode )
52076           && ( discardRectangleCount == rhs.discardRectangleCount )
52077           && ( pDiscardRectangles == rhs.pDiscardRectangles );
52078     }
52079 
operator !=VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT52080     bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const
52081     {
52082       return !operator==( rhs );
52083     }
52084 
52085   private:
52086     using layout::PipelineDiscardRectangleStateCreateInfoEXT::sType;
52087   };
52088   static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
52089   static_assert( std::is_standard_layout<PipelineDiscardRectangleStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
52090 
52091   namespace layout
52092   {
52093     struct PipelineExecutableInfoKHR
52094     {
52095     protected:
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableInfoKHR52096       PipelineExecutableInfoKHR( vk::Pipeline pipeline_ = vk::Pipeline(),
52097                                  uint32_t executableIndex_ = 0 )
52098         : pipeline( pipeline_ )
52099         , executableIndex( executableIndex_ )
52100       {}
52101 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableInfoKHR52102       PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs )
52103       {
52104         *reinterpret_cast<VkPipelineExecutableInfoKHR*>(this) = rhs;
52105       }
52106 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineExecutableInfoKHR52107       PipelineExecutableInfoKHR& operator=( VkPipelineExecutableInfoKHR const & rhs )
52108       {
52109         *reinterpret_cast<VkPipelineExecutableInfoKHR*>(this) = rhs;
52110         return *this;
52111       }
52112 
52113     public:
52114       vk::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
52115       const void* pNext = nullptr;
52116       vk::Pipeline pipeline;
52117       uint32_t executableIndex;
52118     };
52119     static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "layout struct and wrapper have different size!" );
52120   }
52121 
52122   struct PipelineExecutableInfoKHR : public layout::PipelineExecutableInfoKHR
52123   {
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52124     PipelineExecutableInfoKHR( vk::Pipeline pipeline_ = vk::Pipeline(),
52125                                uint32_t executableIndex_ = 0 )
52126       : layout::PipelineExecutableInfoKHR( pipeline_, executableIndex_ )
52127     {}
52128 
PipelineExecutableInfoKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52129     PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs )
52130       : layout::PipelineExecutableInfoKHR( rhs )
52131     {}
52132 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52133     PipelineExecutableInfoKHR& operator=( VkPipelineExecutableInfoKHR const & rhs )
52134     {
52135       *reinterpret_cast<VkPipelineExecutableInfoKHR*>(this) = rhs;
52136       return *this;
52137     }
52138 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52139     PipelineExecutableInfoKHR & setPNext( const void* pNext_ )
52140     {
52141       pNext = pNext_;
52142       return *this;
52143     }
52144 
setPipelineVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52145     PipelineExecutableInfoKHR & setPipeline( vk::Pipeline pipeline_ )
52146     {
52147       pipeline = pipeline_;
52148       return *this;
52149     }
52150 
setExecutableIndexVULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52151     PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ )
52152     {
52153       executableIndex = executableIndex_;
52154       return *this;
52155     }
52156 
operator VkPipelineExecutableInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52157     operator VkPipelineExecutableInfoKHR const&() const
52158     {
52159       return *reinterpret_cast<const VkPipelineExecutableInfoKHR*>( this );
52160     }
52161 
operator VkPipelineExecutableInfoKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52162     operator VkPipelineExecutableInfoKHR &()
52163     {
52164       return *reinterpret_cast<VkPipelineExecutableInfoKHR*>( this );
52165     }
52166 
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52167     bool operator==( PipelineExecutableInfoKHR const& rhs ) const
52168     {
52169       return ( sType == rhs.sType )
52170           && ( pNext == rhs.pNext )
52171           && ( pipeline == rhs.pipeline )
52172           && ( executableIndex == rhs.executableIndex );
52173     }
52174 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR52175     bool operator!=( PipelineExecutableInfoKHR const& rhs ) const
52176     {
52177       return !operator==( rhs );
52178     }
52179 
52180   private:
52181     using layout::PipelineExecutableInfoKHR::sType;
52182   };
52183   static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" );
52184   static_assert( std::is_standard_layout<PipelineExecutableInfoKHR>::value, "struct wrapper is not a standard layout!" );
52185 
52186   namespace layout
52187   {
52188     struct PipelineExecutableInternalRepresentationKHR
52189     {
52190     protected:
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableInternalRepresentationKHR52191       PipelineExecutableInternalRepresentationKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = { { 0 } },
52192                                                    std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = { { 0 } },
52193                                                    vk::Bool32 isText_ = 0,
52194                                                    size_t dataSize_ = 0,
52195                                                    void* pData_ = nullptr )
52196         : isText( isText_ )
52197         , dataSize( dataSize_ )
52198         , pData( pData_ )
52199       {
52200         memcpy( &name, name_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52201         memcpy( &description, description_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52202 
52203       }
52204 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableInternalRepresentationKHR52205       PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs )
52206       {
52207         *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>(this) = rhs;
52208       }
52209 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineExecutableInternalRepresentationKHR52210       PipelineExecutableInternalRepresentationKHR& operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs )
52211       {
52212         *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>(this) = rhs;
52213         return *this;
52214       }
52215 
52216     public:
52217       vk::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
52218       void* pNext = nullptr;
52219       char name[VK_MAX_DESCRIPTION_SIZE];
52220       char description[VK_MAX_DESCRIPTION_SIZE];
52221       vk::Bool32 isText;
52222       size_t dataSize;
52223       void* pData;
52224     };
52225     static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "layout struct and wrapper have different size!" );
52226   }
52227 
52228   struct PipelineExecutableInternalRepresentationKHR : public layout::PipelineExecutableInternalRepresentationKHR
52229   {
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52230     PipelineExecutableInternalRepresentationKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = { { 0 } },
52231                                                  std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = { { 0 } },
52232                                                  vk::Bool32 isText_ = 0,
52233                                                  size_t dataSize_ = 0,
52234                                                  void* pData_ = nullptr )
52235       : layout::PipelineExecutableInternalRepresentationKHR( name_, description_, isText_, dataSize_, pData_ )
52236     {}
52237 
PipelineExecutableInternalRepresentationKHRVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52238     PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs )
52239       : layout::PipelineExecutableInternalRepresentationKHR( rhs )
52240     {}
52241 
operator =VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52242     PipelineExecutableInternalRepresentationKHR& operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs )
52243     {
52244       *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>(this) = rhs;
52245       return *this;
52246     }
52247 
setPNextVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52248     PipelineExecutableInternalRepresentationKHR & setPNext( void* pNext_ )
52249     {
52250       pNext = pNext_;
52251       return *this;
52252     }
52253 
setNameVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52254     PipelineExecutableInternalRepresentationKHR & setName( std::array<char,VK_MAX_DESCRIPTION_SIZE> name_ )
52255     {
52256       memcpy( name, name_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52257       return *this;
52258     }
52259 
setDescriptionVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52260     PipelineExecutableInternalRepresentationKHR & setDescription( std::array<char,VK_MAX_DESCRIPTION_SIZE> description_ )
52261     {
52262       memcpy( description, description_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52263       return *this;
52264     }
52265 
setIsTextVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52266     PipelineExecutableInternalRepresentationKHR & setIsText( vk::Bool32 isText_ )
52267     {
52268       isText = isText_;
52269       return *this;
52270     }
52271 
setDataSizeVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52272     PipelineExecutableInternalRepresentationKHR & setDataSize( size_t dataSize_ )
52273     {
52274       dataSize = dataSize_;
52275       return *this;
52276     }
52277 
setPDataVULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52278     PipelineExecutableInternalRepresentationKHR & setPData( void* pData_ )
52279     {
52280       pData = pData_;
52281       return *this;
52282     }
52283 
operator VkPipelineExecutableInternalRepresentationKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52284     operator VkPipelineExecutableInternalRepresentationKHR const&() const
52285     {
52286       return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR*>( this );
52287     }
52288 
operator VkPipelineExecutableInternalRepresentationKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52289     operator VkPipelineExecutableInternalRepresentationKHR &()
52290     {
52291       return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( this );
52292     }
52293 
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52294     bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const
52295     {
52296       return ( sType == rhs.sType )
52297           && ( pNext == rhs.pNext )
52298           && ( memcmp( name, rhs.name, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 )
52299           && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 )
52300           && ( isText == rhs.isText )
52301           && ( dataSize == rhs.dataSize )
52302           && ( pData == rhs.pData );
52303     }
52304 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR52305     bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const
52306     {
52307       return !operator==( rhs );
52308     }
52309 
52310   private:
52311     using layout::PipelineExecutableInternalRepresentationKHR::sType;
52312   };
52313   static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" );
52314   static_assert( std::is_standard_layout<PipelineExecutableInternalRepresentationKHR>::value, "struct wrapper is not a standard layout!" );
52315 
52316   namespace layout
52317   {
52318     struct PipelineExecutablePropertiesKHR
52319     {
52320     protected:
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutablePropertiesKHR52321       PipelineExecutablePropertiesKHR( vk::ShaderStageFlags stages_ = vk::ShaderStageFlags(),
52322                                        std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = { { 0 } },
52323                                        std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = { { 0 } },
52324                                        uint32_t subgroupSize_ = 0 )
52325         : stages( stages_ )
52326         , subgroupSize( subgroupSize_ )
52327       {
52328         memcpy( &name, name_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52329         memcpy( &description, description_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52330 
52331       }
52332 
PipelineExecutablePropertiesKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutablePropertiesKHR52333       PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs )
52334       {
52335         *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>(this) = rhs;
52336       }
52337 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineExecutablePropertiesKHR52338       PipelineExecutablePropertiesKHR& operator=( VkPipelineExecutablePropertiesKHR const & rhs )
52339       {
52340         *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>(this) = rhs;
52341         return *this;
52342       }
52343 
52344     public:
52345       vk::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
52346       void* pNext = nullptr;
52347       vk::ShaderStageFlags stages;
52348       char name[VK_MAX_DESCRIPTION_SIZE];
52349       char description[VK_MAX_DESCRIPTION_SIZE];
52350       uint32_t subgroupSize;
52351     };
52352     static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "layout struct and wrapper have different size!" );
52353   }
52354 
52355   struct PipelineExecutablePropertiesKHR : public layout::PipelineExecutablePropertiesKHR
52356   {
operator VkPipelineExecutablePropertiesKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR52357     operator VkPipelineExecutablePropertiesKHR const&() const
52358     {
52359       return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR*>( this );
52360     }
52361 
operator VkPipelineExecutablePropertiesKHR&VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR52362     operator VkPipelineExecutablePropertiesKHR &()
52363     {
52364       return *reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( this );
52365     }
52366 
operator ==VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR52367     bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const
52368     {
52369       return ( sType == rhs.sType )
52370           && ( pNext == rhs.pNext )
52371           && ( stages == rhs.stages )
52372           && ( memcmp( name, rhs.name, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 )
52373           && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 )
52374           && ( subgroupSize == rhs.subgroupSize );
52375     }
52376 
operator !=VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR52377     bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const
52378     {
52379       return !operator==( rhs );
52380     }
52381 
52382   private:
52383     using layout::PipelineExecutablePropertiesKHR::sType;
52384   };
52385   static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" );
52386   static_assert( std::is_standard_layout<PipelineExecutablePropertiesKHR>::value, "struct wrapper is not a standard layout!" );
52387 
52388   union PipelineExecutableStatisticValueKHR
52389   {
operator VkPipelineExecutableStatisticValueKHR const&() const52390     operator VkPipelineExecutableStatisticValueKHR const&() const
52391     {
52392       return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR*>(this);
52393     }
52394 
operator VkPipelineExecutableStatisticValueKHR&()52395     operator VkPipelineExecutableStatisticValueKHR &()
52396     {
52397       return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR*>(this);
52398     }
52399 
52400 #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
52401     vk::Bool32 b32;
52402     int64_t i64;
52403     uint64_t u64;
52404     double f64;
52405 #else
52406     VkBool32 b32;
52407     int64_t i64;
52408     uint64_t u64;
52409     double f64;
52410 #endif  /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
52411   };
52412 
52413   namespace layout
52414   {
52415     struct PipelineExecutableStatisticKHR
52416     {
52417     protected:
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableStatisticKHR52418       PipelineExecutableStatisticKHR( std::array<char,VK_MAX_DESCRIPTION_SIZE> const& name_ = { { 0 } },
52419                                       std::array<char,VK_MAX_DESCRIPTION_SIZE> const& description_ = { { 0 } },
52420                                       vk::PipelineExecutableStatisticFormatKHR format_ = vk::PipelineExecutableStatisticFormatKHR::eBool32,
52421                                       vk::PipelineExecutableStatisticValueKHR value_ = vk::PipelineExecutableStatisticValueKHR() )
52422         : format( format_ )
52423         , value( value_ )
52424       {
52425         memcpy( &name, name_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52426         memcpy( &description, description_.data(), VK_MAX_DESCRIPTION_SIZE * sizeof( char ) );
52427 
52428       }
52429 
PipelineExecutableStatisticKHRVULKAN_HPP_NAMESPACE::layout::PipelineExecutableStatisticKHR52430       PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs )
52431       {
52432         *reinterpret_cast<VkPipelineExecutableStatisticKHR*>(this) = rhs;
52433       }
52434 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineExecutableStatisticKHR52435       PipelineExecutableStatisticKHR& operator=( VkPipelineExecutableStatisticKHR const & rhs )
52436       {
52437         *reinterpret_cast<VkPipelineExecutableStatisticKHR*>(this) = rhs;
52438         return *this;
52439       }
52440 
52441     public:
52442       vk::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
52443       void* pNext = nullptr;
52444       char name[VK_MAX_DESCRIPTION_SIZE];
52445       char description[VK_MAX_DESCRIPTION_SIZE];
52446       vk::PipelineExecutableStatisticFormatKHR format;
52447       vk::PipelineExecutableStatisticValueKHR value;
52448     };
52449     static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "layout struct and wrapper have different size!" );
52450   }
52451 
52452   struct PipelineExecutableStatisticKHR : public layout::PipelineExecutableStatisticKHR
52453   {
operator VkPipelineExecutableStatisticKHR const&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR52454     operator VkPipelineExecutableStatisticKHR const&() const
52455     {
52456       return *reinterpret_cast<const VkPipelineExecutableStatisticKHR*>( this );
52457     }
52458 
operator VkPipelineExecutableStatisticKHR&VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR52459     operator VkPipelineExecutableStatisticKHR &()
52460     {
52461       return *reinterpret_cast<VkPipelineExecutableStatisticKHR*>( this );
52462     }
52463 
52464   private:
52465     using layout::PipelineExecutableStatisticKHR::sType;
52466   };
52467   static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" );
52468   static_assert( std::is_standard_layout<PipelineExecutableStatisticKHR>::value, "struct wrapper is not a standard layout!" );
52469 
52470   namespace layout
52471   {
52472     struct PipelineInfoKHR
52473     {
52474     protected:
PipelineInfoKHRVULKAN_HPP_NAMESPACE::layout::PipelineInfoKHR52475       PipelineInfoKHR( vk::Pipeline pipeline_ = vk::Pipeline() )
52476         : pipeline( pipeline_ )
52477       {}
52478 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::layout::PipelineInfoKHR52479       PipelineInfoKHR( VkPipelineInfoKHR const & rhs )
52480       {
52481         *reinterpret_cast<VkPipelineInfoKHR*>(this) = rhs;
52482       }
52483 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineInfoKHR52484       PipelineInfoKHR& operator=( VkPipelineInfoKHR const & rhs )
52485       {
52486         *reinterpret_cast<VkPipelineInfoKHR*>(this) = rhs;
52487         return *this;
52488       }
52489 
52490     public:
52491       vk::StructureType sType = StructureType::ePipelineInfoKHR;
52492       const void* pNext = nullptr;
52493       vk::Pipeline pipeline;
52494     };
52495     static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "layout struct and wrapper have different size!" );
52496   }
52497 
52498   struct PipelineInfoKHR : public layout::PipelineInfoKHR
52499   {
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR52500     PipelineInfoKHR( vk::Pipeline pipeline_ = vk::Pipeline() )
52501       : layout::PipelineInfoKHR( pipeline_ )
52502     {}
52503 
PipelineInfoKHRVULKAN_HPP_NAMESPACE::PipelineInfoKHR52504     PipelineInfoKHR( VkPipelineInfoKHR const & rhs )
52505       : layout::PipelineInfoKHR( rhs )
52506     {}
52507 
operator =VULKAN_HPP_NAMESPACE::PipelineInfoKHR52508     PipelineInfoKHR& operator=( VkPipelineInfoKHR const & rhs )
52509     {
52510       *reinterpret_cast<VkPipelineInfoKHR*>(this) = rhs;
52511       return *this;
52512     }
52513 
setPNextVULKAN_HPP_NAMESPACE::PipelineInfoKHR52514     PipelineInfoKHR & setPNext( const void* pNext_ )
52515     {
52516       pNext = pNext_;
52517       return *this;
52518     }
52519 
setPipelineVULKAN_HPP_NAMESPACE::PipelineInfoKHR52520     PipelineInfoKHR & setPipeline( vk::Pipeline pipeline_ )
52521     {
52522       pipeline = pipeline_;
52523       return *this;
52524     }
52525 
operator VkPipelineInfoKHR const&VULKAN_HPP_NAMESPACE::PipelineInfoKHR52526     operator VkPipelineInfoKHR const&() const
52527     {
52528       return *reinterpret_cast<const VkPipelineInfoKHR*>( this );
52529     }
52530 
operator VkPipelineInfoKHR&VULKAN_HPP_NAMESPACE::PipelineInfoKHR52531     operator VkPipelineInfoKHR &()
52532     {
52533       return *reinterpret_cast<VkPipelineInfoKHR*>( this );
52534     }
52535 
operator ==VULKAN_HPP_NAMESPACE::PipelineInfoKHR52536     bool operator==( PipelineInfoKHR const& rhs ) const
52537     {
52538       return ( sType == rhs.sType )
52539           && ( pNext == rhs.pNext )
52540           && ( pipeline == rhs.pipeline );
52541     }
52542 
operator !=VULKAN_HPP_NAMESPACE::PipelineInfoKHR52543     bool operator!=( PipelineInfoKHR const& rhs ) const
52544     {
52545       return !operator==( rhs );
52546     }
52547 
52548   private:
52549     using layout::PipelineInfoKHR::sType;
52550   };
52551   static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" );
52552   static_assert( std::is_standard_layout<PipelineInfoKHR>::value, "struct wrapper is not a standard layout!" );
52553 
52554   struct PushConstantRange
52555   {
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange52556     PushConstantRange( vk::ShaderStageFlags stageFlags_ = vk::ShaderStageFlags(),
52557                        uint32_t offset_ = 0,
52558                        uint32_t size_ = 0 )
52559         : stageFlags( stageFlags_ )
52560         , offset( offset_ )
52561         , size( size_ )
52562     {}
52563 
PushConstantRangeVULKAN_HPP_NAMESPACE::PushConstantRange52564     PushConstantRange( VkPushConstantRange const & rhs )
52565     {
52566       *reinterpret_cast<VkPushConstantRange*>(this) = rhs;
52567     }
52568 
operator =VULKAN_HPP_NAMESPACE::PushConstantRange52569     PushConstantRange& operator=( VkPushConstantRange const & rhs )
52570     {
52571       *reinterpret_cast<VkPushConstantRange*>(this) = rhs;
52572       return *this;
52573     }
52574 
setStageFlagsVULKAN_HPP_NAMESPACE::PushConstantRange52575     PushConstantRange & setStageFlags( vk::ShaderStageFlags stageFlags_ )
52576     {
52577       stageFlags = stageFlags_;
52578       return *this;
52579     }
52580 
setOffsetVULKAN_HPP_NAMESPACE::PushConstantRange52581     PushConstantRange & setOffset( uint32_t offset_ )
52582     {
52583       offset = offset_;
52584       return *this;
52585     }
52586 
setSizeVULKAN_HPP_NAMESPACE::PushConstantRange52587     PushConstantRange & setSize( uint32_t size_ )
52588     {
52589       size = size_;
52590       return *this;
52591     }
52592 
operator VkPushConstantRange const&VULKAN_HPP_NAMESPACE::PushConstantRange52593     operator VkPushConstantRange const&() const
52594     {
52595       return *reinterpret_cast<const VkPushConstantRange*>( this );
52596     }
52597 
operator VkPushConstantRange&VULKAN_HPP_NAMESPACE::PushConstantRange52598     operator VkPushConstantRange &()
52599     {
52600       return *reinterpret_cast<VkPushConstantRange*>( this );
52601     }
52602 
operator ==VULKAN_HPP_NAMESPACE::PushConstantRange52603     bool operator==( PushConstantRange const& rhs ) const
52604     {
52605       return ( stageFlags == rhs.stageFlags )
52606           && ( offset == rhs.offset )
52607           && ( size == rhs.size );
52608     }
52609 
operator !=VULKAN_HPP_NAMESPACE::PushConstantRange52610     bool operator!=( PushConstantRange const& rhs ) const
52611     {
52612       return !operator==( rhs );
52613     }
52614 
52615   public:
52616     vk::ShaderStageFlags stageFlags;
52617     uint32_t offset;
52618     uint32_t size;
52619   };
52620   static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
52621   static_assert( std::is_standard_layout<PushConstantRange>::value, "struct wrapper is not a standard layout!" );
52622 
52623   namespace layout
52624   {
52625     struct PipelineLayoutCreateInfo
52626     {
52627     protected:
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineLayoutCreateInfo52628       PipelineLayoutCreateInfo( vk::PipelineLayoutCreateFlags flags_ = vk::PipelineLayoutCreateFlags(),
52629                                 uint32_t setLayoutCount_ = 0,
52630                                 const vk::DescriptorSetLayout* pSetLayouts_ = nullptr,
52631                                 uint32_t pushConstantRangeCount_ = 0,
52632                                 const vk::PushConstantRange* pPushConstantRanges_ = nullptr )
52633         : flags( flags_ )
52634         , setLayoutCount( setLayoutCount_ )
52635         , pSetLayouts( pSetLayouts_ )
52636         , pushConstantRangeCount( pushConstantRangeCount_ )
52637         , pPushConstantRanges( pPushConstantRanges_ )
52638       {}
52639 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineLayoutCreateInfo52640       PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs )
52641       {
52642         *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this) = rhs;
52643       }
52644 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineLayoutCreateInfo52645       PipelineLayoutCreateInfo& operator=( VkPipelineLayoutCreateInfo const & rhs )
52646       {
52647         *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this) = rhs;
52648         return *this;
52649       }
52650 
52651     public:
52652       vk::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
52653       const void* pNext = nullptr;
52654       vk::PipelineLayoutCreateFlags flags;
52655       uint32_t setLayoutCount;
52656       const vk::DescriptorSetLayout* pSetLayouts;
52657       uint32_t pushConstantRangeCount;
52658       const vk::PushConstantRange* pPushConstantRanges;
52659     };
52660     static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "layout struct and wrapper have different size!" );
52661   }
52662 
52663   struct PipelineLayoutCreateInfo : public layout::PipelineLayoutCreateInfo
52664   {
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52665     PipelineLayoutCreateInfo( vk::PipelineLayoutCreateFlags flags_ = vk::PipelineLayoutCreateFlags(),
52666                               uint32_t setLayoutCount_ = 0,
52667                               const vk::DescriptorSetLayout* pSetLayouts_ = nullptr,
52668                               uint32_t pushConstantRangeCount_ = 0,
52669                               const vk::PushConstantRange* pPushConstantRanges_ = nullptr )
52670       : layout::PipelineLayoutCreateInfo( flags_, setLayoutCount_, pSetLayouts_, pushConstantRangeCount_, pPushConstantRanges_ )
52671     {}
52672 
PipelineLayoutCreateInfoVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52673     PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs )
52674       : layout::PipelineLayoutCreateInfo( rhs )
52675     {}
52676 
operator =VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52677     PipelineLayoutCreateInfo& operator=( VkPipelineLayoutCreateInfo const & rhs )
52678     {
52679       *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this) = rhs;
52680       return *this;
52681     }
52682 
setPNextVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52683     PipelineLayoutCreateInfo & setPNext( const void* pNext_ )
52684     {
52685       pNext = pNext_;
52686       return *this;
52687     }
52688 
setFlagsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52689     PipelineLayoutCreateInfo & setFlags( vk::PipelineLayoutCreateFlags flags_ )
52690     {
52691       flags = flags_;
52692       return *this;
52693     }
52694 
setSetLayoutCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52695     PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ )
52696     {
52697       setLayoutCount = setLayoutCount_;
52698       return *this;
52699     }
52700 
setPSetLayoutsVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52701     PipelineLayoutCreateInfo & setPSetLayouts( const vk::DescriptorSetLayout* pSetLayouts_ )
52702     {
52703       pSetLayouts = pSetLayouts_;
52704       return *this;
52705     }
52706 
setPushConstantRangeCountVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52707     PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ )
52708     {
52709       pushConstantRangeCount = pushConstantRangeCount_;
52710       return *this;
52711     }
52712 
setPPushConstantRangesVULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52713     PipelineLayoutCreateInfo & setPPushConstantRanges( const vk::PushConstantRange* pPushConstantRanges_ )
52714     {
52715       pPushConstantRanges = pPushConstantRanges_;
52716       return *this;
52717     }
52718 
operator VkPipelineLayoutCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52719     operator VkPipelineLayoutCreateInfo const&() const
52720     {
52721       return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
52722     }
52723 
operator VkPipelineLayoutCreateInfo&VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52724     operator VkPipelineLayoutCreateInfo &()
52725     {
52726       return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
52727     }
52728 
operator ==VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52729     bool operator==( PipelineLayoutCreateInfo const& rhs ) const
52730     {
52731       return ( sType == rhs.sType )
52732           && ( pNext == rhs.pNext )
52733           && ( flags == rhs.flags )
52734           && ( setLayoutCount == rhs.setLayoutCount )
52735           && ( pSetLayouts == rhs.pSetLayouts )
52736           && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
52737           && ( pPushConstantRanges == rhs.pPushConstantRanges );
52738     }
52739 
operator !=VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo52740     bool operator!=( PipelineLayoutCreateInfo const& rhs ) const
52741     {
52742       return !operator==( rhs );
52743     }
52744 
52745   private:
52746     using layout::PipelineLayoutCreateInfo::sType;
52747   };
52748   static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
52749   static_assert( std::is_standard_layout<PipelineLayoutCreateInfo>::value, "struct wrapper is not a standard layout!" );
52750 
52751   namespace layout
52752   {
52753     struct PipelineRasterizationConservativeStateCreateInfoEXT
52754     {
52755     protected:
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationConservativeStateCreateInfoEXT52756       PipelineRasterizationConservativeStateCreateInfoEXT( vk::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = vk::PipelineRasterizationConservativeStateCreateFlagsEXT(),
52757                                                            vk::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = vk::ConservativeRasterizationModeEXT::eDisabled,
52758                                                            float extraPrimitiveOverestimationSize_ = 0 )
52759         : flags( flags_ )
52760         , conservativeRasterizationMode( conservativeRasterizationMode_ )
52761         , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
52762       {}
52763 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationConservativeStateCreateInfoEXT52764       PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
52765       {
52766         *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this) = rhs;
52767       }
52768 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationConservativeStateCreateInfoEXT52769       PipelineRasterizationConservativeStateCreateInfoEXT& operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
52770       {
52771         *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this) = rhs;
52772         return *this;
52773       }
52774 
52775     public:
52776       vk::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
52777       const void* pNext = nullptr;
52778       vk::PipelineRasterizationConservativeStateCreateFlagsEXT flags;
52779       vk::ConservativeRasterizationModeEXT conservativeRasterizationMode;
52780       float extraPrimitiveOverestimationSize;
52781     };
52782     static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
52783   }
52784 
52785   struct PipelineRasterizationConservativeStateCreateInfoEXT : public layout::PipelineRasterizationConservativeStateCreateInfoEXT
52786   {
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52787     PipelineRasterizationConservativeStateCreateInfoEXT( vk::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = vk::PipelineRasterizationConservativeStateCreateFlagsEXT(),
52788                                                          vk::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = vk::ConservativeRasterizationModeEXT::eDisabled,
52789                                                          float extraPrimitiveOverestimationSize_ = 0 )
52790       : layout::PipelineRasterizationConservativeStateCreateInfoEXT( flags_, conservativeRasterizationMode_, extraPrimitiveOverestimationSize_ )
52791     {}
52792 
PipelineRasterizationConservativeStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52793     PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
52794       : layout::PipelineRasterizationConservativeStateCreateInfoEXT( rhs )
52795     {}
52796 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52797     PipelineRasterizationConservativeStateCreateInfoEXT& operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
52798     {
52799       *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this) = rhs;
52800       return *this;
52801     }
52802 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52803     PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ )
52804     {
52805       pNext = pNext_;
52806       return *this;
52807     }
52808 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52809     PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( vk::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ )
52810     {
52811       flags = flags_;
52812       return *this;
52813     }
52814 
setConservativeRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52815     PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( vk::ConservativeRasterizationModeEXT conservativeRasterizationMode_ )
52816     {
52817       conservativeRasterizationMode = conservativeRasterizationMode_;
52818       return *this;
52819     }
52820 
setExtraPrimitiveOverestimationSizeVULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52821     PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ )
52822     {
52823       extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
52824       return *this;
52825     }
52826 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52827     operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const
52828     {
52829       return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
52830     }
52831 
operator VkPipelineRasterizationConservativeStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52832     operator VkPipelineRasterizationConservativeStateCreateInfoEXT &()
52833     {
52834       return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
52835     }
52836 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52837     bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const
52838     {
52839       return ( sType == rhs.sType )
52840           && ( pNext == rhs.pNext )
52841           && ( flags == rhs.flags )
52842           && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
52843           && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
52844     }
52845 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT52846     bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const
52847     {
52848       return !operator==( rhs );
52849     }
52850 
52851   private:
52852     using layout::PipelineRasterizationConservativeStateCreateInfoEXT::sType;
52853   };
52854   static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
52855   static_assert( std::is_standard_layout<PipelineRasterizationConservativeStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
52856 
52857   namespace layout
52858   {
52859     struct PipelineRasterizationDepthClipStateCreateInfoEXT
52860     {
52861     protected:
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationDepthClipStateCreateInfoEXT52862       PipelineRasterizationDepthClipStateCreateInfoEXT( vk::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = vk::PipelineRasterizationDepthClipStateCreateFlagsEXT(),
52863                                                         vk::Bool32 depthClipEnable_ = 0 )
52864         : flags( flags_ )
52865         , depthClipEnable( depthClipEnable_ )
52866       {}
52867 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationDepthClipStateCreateInfoEXT52868       PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
52869       {
52870         *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(this) = rhs;
52871       }
52872 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationDepthClipStateCreateInfoEXT52873       PipelineRasterizationDepthClipStateCreateInfoEXT& operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
52874       {
52875         *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(this) = rhs;
52876         return *this;
52877       }
52878 
52879     public:
52880       vk::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
52881       const void* pNext = nullptr;
52882       vk::PipelineRasterizationDepthClipStateCreateFlagsEXT flags;
52883       vk::Bool32 depthClipEnable;
52884     };
52885     static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
52886   }
52887 
52888   struct PipelineRasterizationDepthClipStateCreateInfoEXT : public layout::PipelineRasterizationDepthClipStateCreateInfoEXT
52889   {
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52890     PipelineRasterizationDepthClipStateCreateInfoEXT( vk::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = vk::PipelineRasterizationDepthClipStateCreateFlagsEXT(),
52891                                                       vk::Bool32 depthClipEnable_ = 0 )
52892       : layout::PipelineRasterizationDepthClipStateCreateInfoEXT( flags_, depthClipEnable_ )
52893     {}
52894 
PipelineRasterizationDepthClipStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52895     PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
52896       : layout::PipelineRasterizationDepthClipStateCreateInfoEXT( rhs )
52897     {}
52898 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52899     PipelineRasterizationDepthClipStateCreateInfoEXT& operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
52900     {
52901       *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(this) = rhs;
52902       return *this;
52903     }
52904 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52905     PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ )
52906     {
52907       pNext = pNext_;
52908       return *this;
52909     }
52910 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52911     PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( vk::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ )
52912     {
52913       flags = flags_;
52914       return *this;
52915     }
52916 
setDepthClipEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52917     PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( vk::Bool32 depthClipEnable_ )
52918     {
52919       depthClipEnable = depthClipEnable_;
52920       return *this;
52921     }
52922 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52923     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const
52924     {
52925       return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
52926     }
52927 
operator VkPipelineRasterizationDepthClipStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52928     operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &()
52929     {
52930       return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
52931     }
52932 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52933     bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const
52934     {
52935       return ( sType == rhs.sType )
52936           && ( pNext == rhs.pNext )
52937           && ( flags == rhs.flags )
52938           && ( depthClipEnable == rhs.depthClipEnable );
52939     }
52940 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT52941     bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const
52942     {
52943       return !operator==( rhs );
52944     }
52945 
52946   private:
52947     using layout::PipelineRasterizationDepthClipStateCreateInfoEXT::sType;
52948   };
52949   static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
52950   static_assert( std::is_standard_layout<PipelineRasterizationDepthClipStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
52951 
52952   namespace layout
52953   {
52954     struct PipelineRasterizationLineStateCreateInfoEXT
52955     {
52956     protected:
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationLineStateCreateInfoEXT52957       PipelineRasterizationLineStateCreateInfoEXT( vk::LineRasterizationModeEXT lineRasterizationMode_ = vk::LineRasterizationModeEXT::eDefault,
52958                                                    vk::Bool32 stippledLineEnable_ = 0,
52959                                                    uint32_t lineStippleFactor_ = 0,
52960                                                    uint16_t lineStipplePattern_ = 0 )
52961         : lineRasterizationMode( lineRasterizationMode_ )
52962         , stippledLineEnable( stippledLineEnable_ )
52963         , lineStippleFactor( lineStippleFactor_ )
52964         , lineStipplePattern( lineStipplePattern_ )
52965       {}
52966 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationLineStateCreateInfoEXT52967       PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs )
52968       {
52969         *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(this) = rhs;
52970       }
52971 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationLineStateCreateInfoEXT52972       PipelineRasterizationLineStateCreateInfoEXT& operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs )
52973       {
52974         *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(this) = rhs;
52975         return *this;
52976       }
52977 
52978     public:
52979       vk::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
52980       const void* pNext = nullptr;
52981       vk::LineRasterizationModeEXT lineRasterizationMode;
52982       vk::Bool32 stippledLineEnable;
52983       uint32_t lineStippleFactor;
52984       uint16_t lineStipplePattern;
52985     };
52986     static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
52987   }
52988 
52989   struct PipelineRasterizationLineStateCreateInfoEXT : public layout::PipelineRasterizationLineStateCreateInfoEXT
52990   {
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT52991     PipelineRasterizationLineStateCreateInfoEXT( vk::LineRasterizationModeEXT lineRasterizationMode_ = vk::LineRasterizationModeEXT::eDefault,
52992                                                  vk::Bool32 stippledLineEnable_ = 0,
52993                                                  uint32_t lineStippleFactor_ = 0,
52994                                                  uint16_t lineStipplePattern_ = 0 )
52995       : layout::PipelineRasterizationLineStateCreateInfoEXT( lineRasterizationMode_, stippledLineEnable_, lineStippleFactor_, lineStipplePattern_ )
52996     {}
52997 
PipelineRasterizationLineStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT52998     PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs )
52999       : layout::PipelineRasterizationLineStateCreateInfoEXT( rhs )
53000     {}
53001 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53002     PipelineRasterizationLineStateCreateInfoEXT& operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs )
53003     {
53004       *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(this) = rhs;
53005       return *this;
53006     }
53007 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53008     PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ )
53009     {
53010       pNext = pNext_;
53011       return *this;
53012     }
53013 
setLineRasterizationModeVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53014     PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( vk::LineRasterizationModeEXT lineRasterizationMode_ )
53015     {
53016       lineRasterizationMode = lineRasterizationMode_;
53017       return *this;
53018     }
53019 
setStippledLineEnableVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53020     PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( vk::Bool32 stippledLineEnable_ )
53021     {
53022       stippledLineEnable = stippledLineEnable_;
53023       return *this;
53024     }
53025 
setLineStippleFactorVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53026     PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ )
53027     {
53028       lineStippleFactor = lineStippleFactor_;
53029       return *this;
53030     }
53031 
setLineStipplePatternVULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53032     PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ )
53033     {
53034       lineStipplePattern = lineStipplePattern_;
53035       return *this;
53036     }
53037 
operator VkPipelineRasterizationLineStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53038     operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const
53039     {
53040       return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
53041     }
53042 
operator VkPipelineRasterizationLineStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53043     operator VkPipelineRasterizationLineStateCreateInfoEXT &()
53044     {
53045       return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>( this );
53046     }
53047 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53048     bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const
53049     {
53050       return ( sType == rhs.sType )
53051           && ( pNext == rhs.pNext )
53052           && ( lineRasterizationMode == rhs.lineRasterizationMode )
53053           && ( stippledLineEnable == rhs.stippledLineEnable )
53054           && ( lineStippleFactor == rhs.lineStippleFactor )
53055           && ( lineStipplePattern == rhs.lineStipplePattern );
53056     }
53057 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT53058     bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const
53059     {
53060       return !operator==( rhs );
53061     }
53062 
53063   private:
53064     using layout::PipelineRasterizationLineStateCreateInfoEXT::sType;
53065   };
53066   static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" );
53067   static_assert( std::is_standard_layout<PipelineRasterizationLineStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
53068 
53069   namespace layout
53070   {
53071     struct PipelineRasterizationStateRasterizationOrderAMD
53072     {
53073     protected:
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateRasterizationOrderAMD53074       PipelineRasterizationStateRasterizationOrderAMD( vk::RasterizationOrderAMD rasterizationOrder_ = vk::RasterizationOrderAMD::eStrict )
53075         : rasterizationOrder( rasterizationOrder_ )
53076       {}
53077 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateRasterizationOrderAMD53078       PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
53079       {
53080         *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this) = rhs;
53081       }
53082 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateRasterizationOrderAMD53083       PipelineRasterizationStateRasterizationOrderAMD& operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
53084       {
53085         *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this) = rhs;
53086         return *this;
53087       }
53088 
53089     public:
53090       vk::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
53091       const void* pNext = nullptr;
53092       vk::RasterizationOrderAMD rasterizationOrder;
53093     };
53094     static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "layout struct and wrapper have different size!" );
53095   }
53096 
53097   struct PipelineRasterizationStateRasterizationOrderAMD : public layout::PipelineRasterizationStateRasterizationOrderAMD
53098   {
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53099     PipelineRasterizationStateRasterizationOrderAMD( vk::RasterizationOrderAMD rasterizationOrder_ = vk::RasterizationOrderAMD::eStrict )
53100       : layout::PipelineRasterizationStateRasterizationOrderAMD( rasterizationOrder_ )
53101     {}
53102 
PipelineRasterizationStateRasterizationOrderAMDVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53103     PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
53104       : layout::PipelineRasterizationStateRasterizationOrderAMD( rhs )
53105     {}
53106 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53107     PipelineRasterizationStateRasterizationOrderAMD& operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
53108     {
53109       *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this) = rhs;
53110       return *this;
53111     }
53112 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53113     PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ )
53114     {
53115       pNext = pNext_;
53116       return *this;
53117     }
53118 
setRasterizationOrderVULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53119     PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( vk::RasterizationOrderAMD rasterizationOrder_ )
53120     {
53121       rasterizationOrder = rasterizationOrder_;
53122       return *this;
53123     }
53124 
operator VkPipelineRasterizationStateRasterizationOrderAMD const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53125     operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const
53126     {
53127       return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
53128     }
53129 
operator VkPipelineRasterizationStateRasterizationOrderAMD&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53130     operator VkPipelineRasterizationStateRasterizationOrderAMD &()
53131     {
53132       return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
53133     }
53134 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53135     bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const
53136     {
53137       return ( sType == rhs.sType )
53138           && ( pNext == rhs.pNext )
53139           && ( rasterizationOrder == rhs.rasterizationOrder );
53140     }
53141 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD53142     bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const
53143     {
53144       return !operator==( rhs );
53145     }
53146 
53147   private:
53148     using layout::PipelineRasterizationStateRasterizationOrderAMD::sType;
53149   };
53150   static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
53151   static_assert( std::is_standard_layout<PipelineRasterizationStateRasterizationOrderAMD>::value, "struct wrapper is not a standard layout!" );
53152 
53153   namespace layout
53154   {
53155     struct PipelineRasterizationStateStreamCreateInfoEXT
53156     {
53157     protected:
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateStreamCreateInfoEXT53158       PipelineRasterizationStateStreamCreateInfoEXT( vk::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = vk::PipelineRasterizationStateStreamCreateFlagsEXT(),
53159                                                      uint32_t rasterizationStream_ = 0 )
53160         : flags( flags_ )
53161         , rasterizationStream( rasterizationStream_ )
53162       {}
53163 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateStreamCreateInfoEXT53164       PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
53165       {
53166         *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(this) = rhs;
53167       }
53168 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRasterizationStateStreamCreateInfoEXT53169       PipelineRasterizationStateStreamCreateInfoEXT& operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
53170       {
53171         *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(this) = rhs;
53172         return *this;
53173       }
53174 
53175     public:
53176       vk::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
53177       const void* pNext = nullptr;
53178       vk::PipelineRasterizationStateStreamCreateFlagsEXT flags;
53179       uint32_t rasterizationStream;
53180     };
53181     static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "layout struct and wrapper have different size!" );
53182   }
53183 
53184   struct PipelineRasterizationStateStreamCreateInfoEXT : public layout::PipelineRasterizationStateStreamCreateInfoEXT
53185   {
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53186     PipelineRasterizationStateStreamCreateInfoEXT( vk::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = vk::PipelineRasterizationStateStreamCreateFlagsEXT(),
53187                                                    uint32_t rasterizationStream_ = 0 )
53188       : layout::PipelineRasterizationStateStreamCreateInfoEXT( flags_, rasterizationStream_ )
53189     {}
53190 
PipelineRasterizationStateStreamCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53191     PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
53192       : layout::PipelineRasterizationStateStreamCreateInfoEXT( rhs )
53193     {}
53194 
operator =VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53195     PipelineRasterizationStateStreamCreateInfoEXT& operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
53196     {
53197       *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(this) = rhs;
53198       return *this;
53199     }
53200 
setPNextVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53201     PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ )
53202     {
53203       pNext = pNext_;
53204       return *this;
53205     }
53206 
setFlagsVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53207     PipelineRasterizationStateStreamCreateInfoEXT & setFlags( vk::PipelineRasterizationStateStreamCreateFlagsEXT flags_ )
53208     {
53209       flags = flags_;
53210       return *this;
53211     }
53212 
setRasterizationStreamVULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53213     PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ )
53214     {
53215       rasterizationStream = rasterizationStream_;
53216       return *this;
53217     }
53218 
operator VkPipelineRasterizationStateStreamCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53219     operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const
53220     {
53221       return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
53222     }
53223 
operator VkPipelineRasterizationStateStreamCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53224     operator VkPipelineRasterizationStateStreamCreateInfoEXT &()
53225     {
53226       return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
53227     }
53228 
operator ==VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53229     bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const
53230     {
53231       return ( sType == rhs.sType )
53232           && ( pNext == rhs.pNext )
53233           && ( flags == rhs.flags )
53234           && ( rasterizationStream == rhs.rasterizationStream );
53235     }
53236 
operator !=VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT53237     bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const
53238     {
53239       return !operator==( rhs );
53240     }
53241 
53242   private:
53243     using layout::PipelineRasterizationStateStreamCreateInfoEXT::sType;
53244   };
53245   static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
53246   static_assert( std::is_standard_layout<PipelineRasterizationStateStreamCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
53247 
53248   namespace layout
53249   {
53250     struct PipelineRepresentativeFragmentTestStateCreateInfoNV
53251     {
53252     protected:
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineRepresentativeFragmentTestStateCreateInfoNV53253       PipelineRepresentativeFragmentTestStateCreateInfoNV( vk::Bool32 representativeFragmentTestEnable_ = 0 )
53254         : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
53255       {}
53256 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineRepresentativeFragmentTestStateCreateInfoNV53257       PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
53258       {
53259         *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this) = rhs;
53260       }
53261 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineRepresentativeFragmentTestStateCreateInfoNV53262       PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
53263       {
53264         *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this) = rhs;
53265         return *this;
53266       }
53267 
53268     public:
53269       vk::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
53270       const void* pNext = nullptr;
53271       vk::Bool32 representativeFragmentTestEnable;
53272     };
53273     static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "layout struct and wrapper have different size!" );
53274   }
53275 
53276   struct PipelineRepresentativeFragmentTestStateCreateInfoNV : public layout::PipelineRepresentativeFragmentTestStateCreateInfoNV
53277   {
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53278     PipelineRepresentativeFragmentTestStateCreateInfoNV( vk::Bool32 representativeFragmentTestEnable_ = 0 )
53279       : layout::PipelineRepresentativeFragmentTestStateCreateInfoNV( representativeFragmentTestEnable_ )
53280     {}
53281 
PipelineRepresentativeFragmentTestStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53282     PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
53283       : layout::PipelineRepresentativeFragmentTestStateCreateInfoNV( rhs )
53284     {}
53285 
operator =VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53286     PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
53287     {
53288       *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this) = rhs;
53289       return *this;
53290     }
53291 
setPNextVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53292     PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ )
53293     {
53294       pNext = pNext_;
53295       return *this;
53296     }
53297 
setRepresentativeFragmentTestEnableVULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53298     PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( vk::Bool32 representativeFragmentTestEnable_ )
53299     {
53300       representativeFragmentTestEnable = representativeFragmentTestEnable_;
53301       return *this;
53302     }
53303 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53304     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const
53305     {
53306       return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
53307     }
53308 
operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53309     operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &()
53310     {
53311       return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
53312     }
53313 
operator ==VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53314     bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const
53315     {
53316       return ( sType == rhs.sType )
53317           && ( pNext == rhs.pNext )
53318           && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
53319     }
53320 
operator !=VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV53321     bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const
53322     {
53323       return !operator==( rhs );
53324     }
53325 
53326   private:
53327     using layout::PipelineRepresentativeFragmentTestStateCreateInfoNV::sType;
53328   };
53329   static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
53330   static_assert( std::is_standard_layout<PipelineRepresentativeFragmentTestStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
53331 
53332   namespace layout
53333   {
53334     struct PipelineSampleLocationsStateCreateInfoEXT
53335     {
53336     protected:
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineSampleLocationsStateCreateInfoEXT53337       PipelineSampleLocationsStateCreateInfoEXT( vk::Bool32 sampleLocationsEnable_ = 0,
53338                                                  vk::SampleLocationsInfoEXT sampleLocationsInfo_ = vk::SampleLocationsInfoEXT() )
53339         : sampleLocationsEnable( sampleLocationsEnable_ )
53340         , sampleLocationsInfo( sampleLocationsInfo_ )
53341       {}
53342 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineSampleLocationsStateCreateInfoEXT53343       PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
53344       {
53345         *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this) = rhs;
53346       }
53347 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineSampleLocationsStateCreateInfoEXT53348       PipelineSampleLocationsStateCreateInfoEXT& operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
53349       {
53350         *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this) = rhs;
53351         return *this;
53352       }
53353 
53354     public:
53355       vk::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
53356       const void* pNext = nullptr;
53357       vk::Bool32 sampleLocationsEnable;
53358       vk::SampleLocationsInfoEXT sampleLocationsInfo;
53359     };
53360     static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
53361   }
53362 
53363   struct PipelineSampleLocationsStateCreateInfoEXT : public layout::PipelineSampleLocationsStateCreateInfoEXT
53364   {
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53365     PipelineSampleLocationsStateCreateInfoEXT( vk::Bool32 sampleLocationsEnable_ = 0,
53366                                                vk::SampleLocationsInfoEXT sampleLocationsInfo_ = vk::SampleLocationsInfoEXT() )
53367       : layout::PipelineSampleLocationsStateCreateInfoEXT( sampleLocationsEnable_, sampleLocationsInfo_ )
53368     {}
53369 
PipelineSampleLocationsStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53370     PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
53371       : layout::PipelineSampleLocationsStateCreateInfoEXT( rhs )
53372     {}
53373 
operator =VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53374     PipelineSampleLocationsStateCreateInfoEXT& operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
53375     {
53376       *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this) = rhs;
53377       return *this;
53378     }
53379 
setPNextVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53380     PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ )
53381     {
53382       pNext = pNext_;
53383       return *this;
53384     }
53385 
setSampleLocationsEnableVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53386     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( vk::Bool32 sampleLocationsEnable_ )
53387     {
53388       sampleLocationsEnable = sampleLocationsEnable_;
53389       return *this;
53390     }
53391 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53392     PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( vk::SampleLocationsInfoEXT sampleLocationsInfo_ )
53393     {
53394       sampleLocationsInfo = sampleLocationsInfo_;
53395       return *this;
53396     }
53397 
operator VkPipelineSampleLocationsStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53398     operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const
53399     {
53400       return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
53401     }
53402 
operator VkPipelineSampleLocationsStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53403     operator VkPipelineSampleLocationsStateCreateInfoEXT &()
53404     {
53405       return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
53406     }
53407 
operator ==VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53408     bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const
53409     {
53410       return ( sType == rhs.sType )
53411           && ( pNext == rhs.pNext )
53412           && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
53413           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
53414     }
53415 
operator !=VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT53416     bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const
53417     {
53418       return !operator==( rhs );
53419     }
53420 
53421   private:
53422     using layout::PipelineSampleLocationsStateCreateInfoEXT::sType;
53423   };
53424   static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
53425   static_assert( std::is_standard_layout<PipelineSampleLocationsStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
53426 
53427   namespace layout
53428   {
53429     struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
53430     {
53431     protected:
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53432       PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( uint32_t requiredSubgroupSize_ = 0 )
53433         : requiredSubgroupSize( requiredSubgroupSize_ )
53434       {}
53435 
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53436       PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs )
53437       {
53438         *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(this) = rhs;
53439       }
53440 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53441       PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs )
53442       {
53443         *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(this) = rhs;
53444         return *this;
53445       }
53446 
53447     public:
53448       vk::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
53449       void* pNext = nullptr;
53450       uint32_t requiredSubgroupSize;
53451     };
53452     static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "layout struct and wrapper have different size!" );
53453   }
53454 
53455   struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : public layout::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
53456   {
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53457     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const
53458     {
53459       return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
53460     }
53461 
operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53462     operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &()
53463     {
53464       return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>( this );
53465     }
53466 
operator ==VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53467     bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const
53468     {
53469       return ( sType == rhs.sType )
53470           && ( pNext == rhs.pNext )
53471           && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
53472     }
53473 
operator !=VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT53474     bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const
53475     {
53476       return !operator==( rhs );
53477     }
53478 
53479   private:
53480     using layout::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::sType;
53481   };
53482   static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" );
53483   static_assert( std::is_standard_layout<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
53484 
53485   namespace layout
53486   {
53487     struct PipelineTessellationDomainOriginStateCreateInfo
53488     {
53489     protected:
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineTessellationDomainOriginStateCreateInfo53490       PipelineTessellationDomainOriginStateCreateInfo( vk::TessellationDomainOrigin domainOrigin_ = vk::TessellationDomainOrigin::eUpperLeft )
53491         : domainOrigin( domainOrigin_ )
53492       {}
53493 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::layout::PipelineTessellationDomainOriginStateCreateInfo53494       PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
53495       {
53496         *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this) = rhs;
53497       }
53498 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineTessellationDomainOriginStateCreateInfo53499       PipelineTessellationDomainOriginStateCreateInfo& operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
53500       {
53501         *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this) = rhs;
53502         return *this;
53503       }
53504 
53505     public:
53506       vk::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
53507       const void* pNext = nullptr;
53508       vk::TessellationDomainOrigin domainOrigin;
53509     };
53510     static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "layout struct and wrapper have different size!" );
53511   }
53512 
53513   struct PipelineTessellationDomainOriginStateCreateInfo : public layout::PipelineTessellationDomainOriginStateCreateInfo
53514   {
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53515     PipelineTessellationDomainOriginStateCreateInfo( vk::TessellationDomainOrigin domainOrigin_ = vk::TessellationDomainOrigin::eUpperLeft )
53516       : layout::PipelineTessellationDomainOriginStateCreateInfo( domainOrigin_ )
53517     {}
53518 
PipelineTessellationDomainOriginStateCreateInfoVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53519     PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
53520       : layout::PipelineTessellationDomainOriginStateCreateInfo( rhs )
53521     {}
53522 
operator =VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53523     PipelineTessellationDomainOriginStateCreateInfo& operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
53524     {
53525       *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this) = rhs;
53526       return *this;
53527     }
53528 
setPNextVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53529     PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ )
53530     {
53531       pNext = pNext_;
53532       return *this;
53533     }
53534 
setDomainOriginVULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53535     PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( vk::TessellationDomainOrigin domainOrigin_ )
53536     {
53537       domainOrigin = domainOrigin_;
53538       return *this;
53539     }
53540 
operator VkPipelineTessellationDomainOriginStateCreateInfo const&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53541     operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const
53542     {
53543       return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
53544     }
53545 
operator VkPipelineTessellationDomainOriginStateCreateInfo&VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53546     operator VkPipelineTessellationDomainOriginStateCreateInfo &()
53547     {
53548       return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
53549     }
53550 
operator ==VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53551     bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const
53552     {
53553       return ( sType == rhs.sType )
53554           && ( pNext == rhs.pNext )
53555           && ( domainOrigin == rhs.domainOrigin );
53556     }
53557 
operator !=VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo53558     bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const
53559     {
53560       return !operator==( rhs );
53561     }
53562 
53563   private:
53564     using layout::PipelineTessellationDomainOriginStateCreateInfo::sType;
53565   };
53566   static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
53567   static_assert( std::is_standard_layout<PipelineTessellationDomainOriginStateCreateInfo>::value, "struct wrapper is not a standard layout!" );
53568 
53569   struct VertexInputBindingDivisorDescriptionEXT
53570   {
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53571     VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = 0,
53572                                              uint32_t divisor_ = 0 )
53573         : binding( binding_ )
53574         , divisor( divisor_ )
53575     {}
53576 
VertexInputBindingDivisorDescriptionEXTVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53577     VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs )
53578     {
53579       *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>(this) = rhs;
53580     }
53581 
operator =VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53582     VertexInputBindingDivisorDescriptionEXT& operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs )
53583     {
53584       *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>(this) = rhs;
53585       return *this;
53586     }
53587 
setBindingVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53588     VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ )
53589     {
53590       binding = binding_;
53591       return *this;
53592     }
53593 
setDivisorVULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53594     VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ )
53595     {
53596       divisor = divisor_;
53597       return *this;
53598     }
53599 
operator VkVertexInputBindingDivisorDescriptionEXT const&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53600     operator VkVertexInputBindingDivisorDescriptionEXT const&() const
53601     {
53602       return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
53603     }
53604 
operator VkVertexInputBindingDivisorDescriptionEXT&VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53605     operator VkVertexInputBindingDivisorDescriptionEXT &()
53606     {
53607       return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
53608     }
53609 
operator ==VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53610     bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const
53611     {
53612       return ( binding == rhs.binding )
53613           && ( divisor == rhs.divisor );
53614     }
53615 
operator !=VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT53616     bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const
53617     {
53618       return !operator==( rhs );
53619     }
53620 
53621   public:
53622     uint32_t binding;
53623     uint32_t divisor;
53624   };
53625   static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
53626   static_assert( std::is_standard_layout<VertexInputBindingDivisorDescriptionEXT>::value, "struct wrapper is not a standard layout!" );
53627 
53628   namespace layout
53629   {
53630     struct PipelineVertexInputDivisorStateCreateInfoEXT
53631     {
53632     protected:
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineVertexInputDivisorStateCreateInfoEXT53633       PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = 0,
53634                                                     const vk::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = nullptr )
53635         : vertexBindingDivisorCount( vertexBindingDivisorCount_ )
53636         , pVertexBindingDivisors( pVertexBindingDivisors_ )
53637       {}
53638 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::PipelineVertexInputDivisorStateCreateInfoEXT53639       PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
53640       {
53641         *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this) = rhs;
53642       }
53643 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineVertexInputDivisorStateCreateInfoEXT53644       PipelineVertexInputDivisorStateCreateInfoEXT& operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
53645       {
53646         *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this) = rhs;
53647         return *this;
53648       }
53649 
53650     public:
53651       vk::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
53652       const void* pNext = nullptr;
53653       uint32_t vertexBindingDivisorCount;
53654       const vk::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors;
53655     };
53656     static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "layout struct and wrapper have different size!" );
53657   }
53658 
53659   struct PipelineVertexInputDivisorStateCreateInfoEXT : public layout::PipelineVertexInputDivisorStateCreateInfoEXT
53660   {
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53661     PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = 0,
53662                                                   const vk::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = nullptr )
53663       : layout::PipelineVertexInputDivisorStateCreateInfoEXT( vertexBindingDivisorCount_, pVertexBindingDivisors_ )
53664     {}
53665 
PipelineVertexInputDivisorStateCreateInfoEXTVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53666     PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
53667       : layout::PipelineVertexInputDivisorStateCreateInfoEXT( rhs )
53668     {}
53669 
operator =VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53670     PipelineVertexInputDivisorStateCreateInfoEXT& operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
53671     {
53672       *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this) = rhs;
53673       return *this;
53674     }
53675 
setPNextVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53676     PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ )
53677     {
53678       pNext = pNext_;
53679       return *this;
53680     }
53681 
setVertexBindingDivisorCountVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53682     PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ )
53683     {
53684       vertexBindingDivisorCount = vertexBindingDivisorCount_;
53685       return *this;
53686     }
53687 
setPVertexBindingDivisorsVULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53688     PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const vk::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ )
53689     {
53690       pVertexBindingDivisors = pVertexBindingDivisors_;
53691       return *this;
53692     }
53693 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53694     operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const
53695     {
53696       return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
53697     }
53698 
operator VkPipelineVertexInputDivisorStateCreateInfoEXT&VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53699     operator VkPipelineVertexInputDivisorStateCreateInfoEXT &()
53700     {
53701       return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
53702     }
53703 
operator ==VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53704     bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const
53705     {
53706       return ( sType == rhs.sType )
53707           && ( pNext == rhs.pNext )
53708           && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
53709           && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
53710     }
53711 
operator !=VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT53712     bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const
53713     {
53714       return !operator==( rhs );
53715     }
53716 
53717   private:
53718     using layout::PipelineVertexInputDivisorStateCreateInfoEXT::sType;
53719   };
53720   static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
53721   static_assert( std::is_standard_layout<PipelineVertexInputDivisorStateCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
53722 
53723   namespace layout
53724   {
53725     struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
53726     {
53727     protected:
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV53728       PipelineViewportCoarseSampleOrderStateCreateInfoNV( vk::CoarseSampleOrderTypeNV sampleOrderType_ = vk::CoarseSampleOrderTypeNV::eDefault,
53729                                                           uint32_t customSampleOrderCount_ = 0,
53730                                                           const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = nullptr )
53731         : sampleOrderType( sampleOrderType_ )
53732         , customSampleOrderCount( customSampleOrderCount_ )
53733         , pCustomSampleOrders( pCustomSampleOrders_ )
53734       {}
53735 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV53736       PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
53737       {
53738         *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this) = rhs;
53739       }
53740 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV53741       PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
53742       {
53743         *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this) = rhs;
53744         return *this;
53745       }
53746 
53747     public:
53748       vk::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
53749       const void* pNext = nullptr;
53750       vk::CoarseSampleOrderTypeNV sampleOrderType;
53751       uint32_t customSampleOrderCount;
53752       const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders;
53753     };
53754     static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "layout struct and wrapper have different size!" );
53755   }
53756 
53757   struct PipelineViewportCoarseSampleOrderStateCreateInfoNV : public layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV
53758   {
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53759     PipelineViewportCoarseSampleOrderStateCreateInfoNV( vk::CoarseSampleOrderTypeNV sampleOrderType_ = vk::CoarseSampleOrderTypeNV::eDefault,
53760                                                         uint32_t customSampleOrderCount_ = 0,
53761                                                         const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = nullptr )
53762       : layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV( sampleOrderType_, customSampleOrderCount_, pCustomSampleOrders_ )
53763     {}
53764 
PipelineViewportCoarseSampleOrderStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53765     PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
53766       : layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV( rhs )
53767     {}
53768 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53769     PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
53770     {
53771       *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this) = rhs;
53772       return *this;
53773     }
53774 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53775     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ )
53776     {
53777       pNext = pNext_;
53778       return *this;
53779     }
53780 
setSampleOrderTypeVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53781     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( vk::CoarseSampleOrderTypeNV sampleOrderType_ )
53782     {
53783       sampleOrderType = sampleOrderType_;
53784       return *this;
53785     }
53786 
setCustomSampleOrderCountVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53787     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ )
53788     {
53789       customSampleOrderCount = customSampleOrderCount_;
53790       return *this;
53791     }
53792 
setPCustomSampleOrdersVULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53793     PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders_ )
53794     {
53795       pCustomSampleOrders = pCustomSampleOrders_;
53796       return *this;
53797     }
53798 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53799     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const
53800     {
53801       return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
53802     }
53803 
operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53804     operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &()
53805     {
53806       return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
53807     }
53808 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53809     bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const
53810     {
53811       return ( sType == rhs.sType )
53812           && ( pNext == rhs.pNext )
53813           && ( sampleOrderType == rhs.sampleOrderType )
53814           && ( customSampleOrderCount == rhs.customSampleOrderCount )
53815           && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
53816     }
53817 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV53818     bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const
53819     {
53820       return !operator==( rhs );
53821     }
53822 
53823   private:
53824     using layout::PipelineViewportCoarseSampleOrderStateCreateInfoNV::sType;
53825   };
53826   static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
53827   static_assert( std::is_standard_layout<PipelineViewportCoarseSampleOrderStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
53828 
53829   namespace layout
53830   {
53831     struct PipelineViewportExclusiveScissorStateCreateInfoNV
53832     {
53833     protected:
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportExclusiveScissorStateCreateInfoNV53834       PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = 0,
53835                                                          const vk::Rect2D* pExclusiveScissors_ = nullptr )
53836         : exclusiveScissorCount( exclusiveScissorCount_ )
53837         , pExclusiveScissors( pExclusiveScissors_ )
53838       {}
53839 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportExclusiveScissorStateCreateInfoNV53840       PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
53841       {
53842         *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this) = rhs;
53843       }
53844 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportExclusiveScissorStateCreateInfoNV53845       PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
53846       {
53847         *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this) = rhs;
53848         return *this;
53849       }
53850 
53851     public:
53852       vk::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
53853       const void* pNext = nullptr;
53854       uint32_t exclusiveScissorCount;
53855       const vk::Rect2D* pExclusiveScissors;
53856     };
53857     static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "layout struct and wrapper have different size!" );
53858   }
53859 
53860   struct PipelineViewportExclusiveScissorStateCreateInfoNV : public layout::PipelineViewportExclusiveScissorStateCreateInfoNV
53861   {
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53862     PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = 0,
53863                                                        const vk::Rect2D* pExclusiveScissors_ = nullptr )
53864       : layout::PipelineViewportExclusiveScissorStateCreateInfoNV( exclusiveScissorCount_, pExclusiveScissors_ )
53865     {}
53866 
PipelineViewportExclusiveScissorStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53867     PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
53868       : layout::PipelineViewportExclusiveScissorStateCreateInfoNV( rhs )
53869     {}
53870 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53871     PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
53872     {
53873       *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this) = rhs;
53874       return *this;
53875     }
53876 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53877     PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ )
53878     {
53879       pNext = pNext_;
53880       return *this;
53881     }
53882 
setExclusiveScissorCountVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53883     PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ )
53884     {
53885       exclusiveScissorCount = exclusiveScissorCount_;
53886       return *this;
53887     }
53888 
setPExclusiveScissorsVULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53889     PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const vk::Rect2D* pExclusiveScissors_ )
53890     {
53891       pExclusiveScissors = pExclusiveScissors_;
53892       return *this;
53893     }
53894 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53895     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const
53896     {
53897       return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
53898     }
53899 
operator VkPipelineViewportExclusiveScissorStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53900     operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &()
53901     {
53902       return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
53903     }
53904 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53905     bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const
53906     {
53907       return ( sType == rhs.sType )
53908           && ( pNext == rhs.pNext )
53909           && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
53910           && ( pExclusiveScissors == rhs.pExclusiveScissors );
53911     }
53912 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV53913     bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const
53914     {
53915       return !operator==( rhs );
53916     }
53917 
53918   private:
53919     using layout::PipelineViewportExclusiveScissorStateCreateInfoNV::sType;
53920   };
53921   static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
53922   static_assert( std::is_standard_layout<PipelineViewportExclusiveScissorStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
53923 
53924   struct ShadingRatePaletteNV
53925   {
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53926     ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = 0,
53927                           const vk::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = nullptr )
53928         : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
53929         , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
53930     {}
53931 
ShadingRatePaletteNVVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53932     ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs )
53933     {
53934       *reinterpret_cast<VkShadingRatePaletteNV*>(this) = rhs;
53935     }
53936 
operator =VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53937     ShadingRatePaletteNV& operator=( VkShadingRatePaletteNV const & rhs )
53938     {
53939       *reinterpret_cast<VkShadingRatePaletteNV*>(this) = rhs;
53940       return *this;
53941     }
53942 
setShadingRatePaletteEntryCountVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53943     ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ )
53944     {
53945       shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
53946       return *this;
53947     }
53948 
setPShadingRatePaletteEntriesVULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53949     ShadingRatePaletteNV & setPShadingRatePaletteEntries( const vk::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ )
53950     {
53951       pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
53952       return *this;
53953     }
53954 
operator VkShadingRatePaletteNV const&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53955     operator VkShadingRatePaletteNV const&() const
53956     {
53957       return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
53958     }
53959 
operator VkShadingRatePaletteNV&VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53960     operator VkShadingRatePaletteNV &()
53961     {
53962       return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
53963     }
53964 
operator ==VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53965     bool operator==( ShadingRatePaletteNV const& rhs ) const
53966     {
53967       return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
53968           && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
53969     }
53970 
operator !=VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV53971     bool operator!=( ShadingRatePaletteNV const& rhs ) const
53972     {
53973       return !operator==( rhs );
53974     }
53975 
53976   public:
53977     uint32_t shadingRatePaletteEntryCount;
53978     const vk::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
53979   };
53980   static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
53981   static_assert( std::is_standard_layout<ShadingRatePaletteNV>::value, "struct wrapper is not a standard layout!" );
53982 
53983   namespace layout
53984   {
53985     struct PipelineViewportShadingRateImageStateCreateInfoNV
53986     {
53987     protected:
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportShadingRateImageStateCreateInfoNV53988       PipelineViewportShadingRateImageStateCreateInfoNV( vk::Bool32 shadingRateImageEnable_ = 0,
53989                                                          uint32_t viewportCount_ = 0,
53990                                                          const vk::ShadingRatePaletteNV* pShadingRatePalettes_ = nullptr )
53991         : shadingRateImageEnable( shadingRateImageEnable_ )
53992         , viewportCount( viewportCount_ )
53993         , pShadingRatePalettes( pShadingRatePalettes_ )
53994       {}
53995 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportShadingRateImageStateCreateInfoNV53996       PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
53997       {
53998         *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this) = rhs;
53999       }
54000 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportShadingRateImageStateCreateInfoNV54001       PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
54002       {
54003         *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this) = rhs;
54004         return *this;
54005       }
54006 
54007     public:
54008       vk::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
54009       const void* pNext = nullptr;
54010       vk::Bool32 shadingRateImageEnable;
54011       uint32_t viewportCount;
54012       const vk::ShadingRatePaletteNV* pShadingRatePalettes;
54013     };
54014     static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "layout struct and wrapper have different size!" );
54015   }
54016 
54017   struct PipelineViewportShadingRateImageStateCreateInfoNV : public layout::PipelineViewportShadingRateImageStateCreateInfoNV
54018   {
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54019     PipelineViewportShadingRateImageStateCreateInfoNV( vk::Bool32 shadingRateImageEnable_ = 0,
54020                                                        uint32_t viewportCount_ = 0,
54021                                                        const vk::ShadingRatePaletteNV* pShadingRatePalettes_ = nullptr )
54022       : layout::PipelineViewportShadingRateImageStateCreateInfoNV( shadingRateImageEnable_, viewportCount_, pShadingRatePalettes_ )
54023     {}
54024 
PipelineViewportShadingRateImageStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54025     PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
54026       : layout::PipelineViewportShadingRateImageStateCreateInfoNV( rhs )
54027     {}
54028 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54029     PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
54030     {
54031       *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this) = rhs;
54032       return *this;
54033     }
54034 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54035     PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ )
54036     {
54037       pNext = pNext_;
54038       return *this;
54039     }
54040 
setShadingRateImageEnableVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54041     PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( vk::Bool32 shadingRateImageEnable_ )
54042     {
54043       shadingRateImageEnable = shadingRateImageEnable_;
54044       return *this;
54045     }
54046 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54047     PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
54048     {
54049       viewportCount = viewportCount_;
54050       return *this;
54051     }
54052 
setPShadingRatePalettesVULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54053     PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const vk::ShadingRatePaletteNV* pShadingRatePalettes_ )
54054     {
54055       pShadingRatePalettes = pShadingRatePalettes_;
54056       return *this;
54057     }
54058 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54059     operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const
54060     {
54061       return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
54062     }
54063 
operator VkPipelineViewportShadingRateImageStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54064     operator VkPipelineViewportShadingRateImageStateCreateInfoNV &()
54065     {
54066       return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
54067     }
54068 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54069     bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const
54070     {
54071       return ( sType == rhs.sType )
54072           && ( pNext == rhs.pNext )
54073           && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
54074           && ( viewportCount == rhs.viewportCount )
54075           && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
54076     }
54077 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV54078     bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const
54079     {
54080       return !operator==( rhs );
54081     }
54082 
54083   private:
54084     using layout::PipelineViewportShadingRateImageStateCreateInfoNV::sType;
54085   };
54086   static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
54087   static_assert( std::is_standard_layout<PipelineViewportShadingRateImageStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
54088 
54089   struct ViewportSwizzleNV
54090   {
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54091     ViewportSwizzleNV( vk::ViewportCoordinateSwizzleNV x_ = vk::ViewportCoordinateSwizzleNV::ePositiveX,
54092                        vk::ViewportCoordinateSwizzleNV y_ = vk::ViewportCoordinateSwizzleNV::ePositiveX,
54093                        vk::ViewportCoordinateSwizzleNV z_ = vk::ViewportCoordinateSwizzleNV::ePositiveX,
54094                        vk::ViewportCoordinateSwizzleNV w_ = vk::ViewportCoordinateSwizzleNV::ePositiveX )
54095         : x( x_ )
54096         , y( y_ )
54097         , z( z_ )
54098         , w( w_ )
54099     {}
54100 
ViewportSwizzleNVVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54101     ViewportSwizzleNV( VkViewportSwizzleNV const & rhs )
54102     {
54103       *reinterpret_cast<VkViewportSwizzleNV*>(this) = rhs;
54104     }
54105 
operator =VULKAN_HPP_NAMESPACE::ViewportSwizzleNV54106     ViewportSwizzleNV& operator=( VkViewportSwizzleNV const & rhs )
54107     {
54108       *reinterpret_cast<VkViewportSwizzleNV*>(this) = rhs;
54109       return *this;
54110     }
54111 
setXVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54112     ViewportSwizzleNV & setX( vk::ViewportCoordinateSwizzleNV x_ )
54113     {
54114       x = x_;
54115       return *this;
54116     }
54117 
setYVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54118     ViewportSwizzleNV & setY( vk::ViewportCoordinateSwizzleNV y_ )
54119     {
54120       y = y_;
54121       return *this;
54122     }
54123 
setZVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54124     ViewportSwizzleNV & setZ( vk::ViewportCoordinateSwizzleNV z_ )
54125     {
54126       z = z_;
54127       return *this;
54128     }
54129 
setWVULKAN_HPP_NAMESPACE::ViewportSwizzleNV54130     ViewportSwizzleNV & setW( vk::ViewportCoordinateSwizzleNV w_ )
54131     {
54132       w = w_;
54133       return *this;
54134     }
54135 
operator VkViewportSwizzleNV const&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV54136     operator VkViewportSwizzleNV const&() const
54137     {
54138       return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
54139     }
54140 
operator VkViewportSwizzleNV&VULKAN_HPP_NAMESPACE::ViewportSwizzleNV54141     operator VkViewportSwizzleNV &()
54142     {
54143       return *reinterpret_cast<VkViewportSwizzleNV*>( this );
54144     }
54145 
operator ==VULKAN_HPP_NAMESPACE::ViewportSwizzleNV54146     bool operator==( ViewportSwizzleNV const& rhs ) const
54147     {
54148       return ( x == rhs.x )
54149           && ( y == rhs.y )
54150           && ( z == rhs.z )
54151           && ( w == rhs.w );
54152     }
54153 
operator !=VULKAN_HPP_NAMESPACE::ViewportSwizzleNV54154     bool operator!=( ViewportSwizzleNV const& rhs ) const
54155     {
54156       return !operator==( rhs );
54157     }
54158 
54159   public:
54160     vk::ViewportCoordinateSwizzleNV x;
54161     vk::ViewportCoordinateSwizzleNV y;
54162     vk::ViewportCoordinateSwizzleNV z;
54163     vk::ViewportCoordinateSwizzleNV w;
54164   };
54165   static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
54166   static_assert( std::is_standard_layout<ViewportSwizzleNV>::value, "struct wrapper is not a standard layout!" );
54167 
54168   namespace layout
54169   {
54170     struct PipelineViewportSwizzleStateCreateInfoNV
54171     {
54172     protected:
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportSwizzleStateCreateInfoNV54173       PipelineViewportSwizzleStateCreateInfoNV( vk::PipelineViewportSwizzleStateCreateFlagsNV flags_ = vk::PipelineViewportSwizzleStateCreateFlagsNV(),
54174                                                 uint32_t viewportCount_ = 0,
54175                                                 const vk::ViewportSwizzleNV* pViewportSwizzles_ = nullptr )
54176         : flags( flags_ )
54177         , viewportCount( viewportCount_ )
54178         , pViewportSwizzles( pViewportSwizzles_ )
54179       {}
54180 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportSwizzleStateCreateInfoNV54181       PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
54182       {
54183         *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this) = rhs;
54184       }
54185 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportSwizzleStateCreateInfoNV54186       PipelineViewportSwizzleStateCreateInfoNV& operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
54187       {
54188         *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this) = rhs;
54189         return *this;
54190       }
54191 
54192     public:
54193       vk::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
54194       const void* pNext = nullptr;
54195       vk::PipelineViewportSwizzleStateCreateFlagsNV flags;
54196       uint32_t viewportCount;
54197       const vk::ViewportSwizzleNV* pViewportSwizzles;
54198     };
54199     static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "layout struct and wrapper have different size!" );
54200   }
54201 
54202   struct PipelineViewportSwizzleStateCreateInfoNV : public layout::PipelineViewportSwizzleStateCreateInfoNV
54203   {
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54204     PipelineViewportSwizzleStateCreateInfoNV( vk::PipelineViewportSwizzleStateCreateFlagsNV flags_ = vk::PipelineViewportSwizzleStateCreateFlagsNV(),
54205                                               uint32_t viewportCount_ = 0,
54206                                               const vk::ViewportSwizzleNV* pViewportSwizzles_ = nullptr )
54207       : layout::PipelineViewportSwizzleStateCreateInfoNV( flags_, viewportCount_, pViewportSwizzles_ )
54208     {}
54209 
PipelineViewportSwizzleStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54210     PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
54211       : layout::PipelineViewportSwizzleStateCreateInfoNV( rhs )
54212     {}
54213 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54214     PipelineViewportSwizzleStateCreateInfoNV& operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
54215     {
54216       *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this) = rhs;
54217       return *this;
54218     }
54219 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54220     PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ )
54221     {
54222       pNext = pNext_;
54223       return *this;
54224     }
54225 
setFlagsVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54226     PipelineViewportSwizzleStateCreateInfoNV & setFlags( vk::PipelineViewportSwizzleStateCreateFlagsNV flags_ )
54227     {
54228       flags = flags_;
54229       return *this;
54230     }
54231 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54232     PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
54233     {
54234       viewportCount = viewportCount_;
54235       return *this;
54236     }
54237 
setPViewportSwizzlesVULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54238     PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const vk::ViewportSwizzleNV* pViewportSwizzles_ )
54239     {
54240       pViewportSwizzles = pViewportSwizzles_;
54241       return *this;
54242     }
54243 
operator VkPipelineViewportSwizzleStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54244     operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const
54245     {
54246       return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
54247     }
54248 
operator VkPipelineViewportSwizzleStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54249     operator VkPipelineViewportSwizzleStateCreateInfoNV &()
54250     {
54251       return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
54252     }
54253 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54254     bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const
54255     {
54256       return ( sType == rhs.sType )
54257           && ( pNext == rhs.pNext )
54258           && ( flags == rhs.flags )
54259           && ( viewportCount == rhs.viewportCount )
54260           && ( pViewportSwizzles == rhs.pViewportSwizzles );
54261     }
54262 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV54263     bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const
54264     {
54265       return !operator==( rhs );
54266     }
54267 
54268   private:
54269     using layout::PipelineViewportSwizzleStateCreateInfoNV::sType;
54270   };
54271   static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
54272   static_assert( std::is_standard_layout<PipelineViewportSwizzleStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
54273 
54274   struct ViewportWScalingNV
54275   {
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV54276     ViewportWScalingNV( float xcoeff_ = 0,
54277                         float ycoeff_ = 0 )
54278         : xcoeff( xcoeff_ )
54279         , ycoeff( ycoeff_ )
54280     {}
54281 
ViewportWScalingNVVULKAN_HPP_NAMESPACE::ViewportWScalingNV54282     ViewportWScalingNV( VkViewportWScalingNV const & rhs )
54283     {
54284       *reinterpret_cast<VkViewportWScalingNV*>(this) = rhs;
54285     }
54286 
operator =VULKAN_HPP_NAMESPACE::ViewportWScalingNV54287     ViewportWScalingNV& operator=( VkViewportWScalingNV const & rhs )
54288     {
54289       *reinterpret_cast<VkViewportWScalingNV*>(this) = rhs;
54290       return *this;
54291     }
54292 
setXcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV54293     ViewportWScalingNV & setXcoeff( float xcoeff_ )
54294     {
54295       xcoeff = xcoeff_;
54296       return *this;
54297     }
54298 
setYcoeffVULKAN_HPP_NAMESPACE::ViewportWScalingNV54299     ViewportWScalingNV & setYcoeff( float ycoeff_ )
54300     {
54301       ycoeff = ycoeff_;
54302       return *this;
54303     }
54304 
operator VkViewportWScalingNV const&VULKAN_HPP_NAMESPACE::ViewportWScalingNV54305     operator VkViewportWScalingNV const&() const
54306     {
54307       return *reinterpret_cast<const VkViewportWScalingNV*>( this );
54308     }
54309 
operator VkViewportWScalingNV&VULKAN_HPP_NAMESPACE::ViewportWScalingNV54310     operator VkViewportWScalingNV &()
54311     {
54312       return *reinterpret_cast<VkViewportWScalingNV*>( this );
54313     }
54314 
operator ==VULKAN_HPP_NAMESPACE::ViewportWScalingNV54315     bool operator==( ViewportWScalingNV const& rhs ) const
54316     {
54317       return ( xcoeff == rhs.xcoeff )
54318           && ( ycoeff == rhs.ycoeff );
54319     }
54320 
operator !=VULKAN_HPP_NAMESPACE::ViewportWScalingNV54321     bool operator!=( ViewportWScalingNV const& rhs ) const
54322     {
54323       return !operator==( rhs );
54324     }
54325 
54326   public:
54327     float xcoeff;
54328     float ycoeff;
54329   };
54330   static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
54331   static_assert( std::is_standard_layout<ViewportWScalingNV>::value, "struct wrapper is not a standard layout!" );
54332 
54333   namespace layout
54334   {
54335     struct PipelineViewportWScalingStateCreateInfoNV
54336     {
54337     protected:
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportWScalingStateCreateInfoNV54338       PipelineViewportWScalingStateCreateInfoNV( vk::Bool32 viewportWScalingEnable_ = 0,
54339                                                  uint32_t viewportCount_ = 0,
54340                                                  const vk::ViewportWScalingNV* pViewportWScalings_ = nullptr )
54341         : viewportWScalingEnable( viewportWScalingEnable_ )
54342         , viewportCount( viewportCount_ )
54343         , pViewportWScalings( pViewportWScalings_ )
54344       {}
54345 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::layout::PipelineViewportWScalingStateCreateInfoNV54346       PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
54347       {
54348         *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this) = rhs;
54349       }
54350 
operator =VULKAN_HPP_NAMESPACE::layout::PipelineViewportWScalingStateCreateInfoNV54351       PipelineViewportWScalingStateCreateInfoNV& operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
54352       {
54353         *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this) = rhs;
54354         return *this;
54355       }
54356 
54357     public:
54358       vk::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
54359       const void* pNext = nullptr;
54360       vk::Bool32 viewportWScalingEnable;
54361       uint32_t viewportCount;
54362       const vk::ViewportWScalingNV* pViewportWScalings;
54363     };
54364     static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "layout struct and wrapper have different size!" );
54365   }
54366 
54367   struct PipelineViewportWScalingStateCreateInfoNV : public layout::PipelineViewportWScalingStateCreateInfoNV
54368   {
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54369     PipelineViewportWScalingStateCreateInfoNV( vk::Bool32 viewportWScalingEnable_ = 0,
54370                                                uint32_t viewportCount_ = 0,
54371                                                const vk::ViewportWScalingNV* pViewportWScalings_ = nullptr )
54372       : layout::PipelineViewportWScalingStateCreateInfoNV( viewportWScalingEnable_, viewportCount_, pViewportWScalings_ )
54373     {}
54374 
PipelineViewportWScalingStateCreateInfoNVVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54375     PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
54376       : layout::PipelineViewportWScalingStateCreateInfoNV( rhs )
54377     {}
54378 
operator =VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54379     PipelineViewportWScalingStateCreateInfoNV& operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
54380     {
54381       *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this) = rhs;
54382       return *this;
54383     }
54384 
setPNextVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54385     PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ )
54386     {
54387       pNext = pNext_;
54388       return *this;
54389     }
54390 
setViewportWScalingEnableVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54391     PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( vk::Bool32 viewportWScalingEnable_ )
54392     {
54393       viewportWScalingEnable = viewportWScalingEnable_;
54394       return *this;
54395     }
54396 
setViewportCountVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54397     PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
54398     {
54399       viewportCount = viewportCount_;
54400       return *this;
54401     }
54402 
setPViewportWScalingsVULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54403     PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const vk::ViewportWScalingNV* pViewportWScalings_ )
54404     {
54405       pViewportWScalings = pViewportWScalings_;
54406       return *this;
54407     }
54408 
operator VkPipelineViewportWScalingStateCreateInfoNV const&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54409     operator VkPipelineViewportWScalingStateCreateInfoNV const&() const
54410     {
54411       return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
54412     }
54413 
operator VkPipelineViewportWScalingStateCreateInfoNV&VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54414     operator VkPipelineViewportWScalingStateCreateInfoNV &()
54415     {
54416       return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
54417     }
54418 
operator ==VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54419     bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const
54420     {
54421       return ( sType == rhs.sType )
54422           && ( pNext == rhs.pNext )
54423           && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
54424           && ( viewportCount == rhs.viewportCount )
54425           && ( pViewportWScalings == rhs.pViewportWScalings );
54426     }
54427 
operator !=VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV54428     bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const
54429     {
54430       return !operator==( rhs );
54431     }
54432 
54433   private:
54434     using layout::PipelineViewportWScalingStateCreateInfoNV::sType;
54435   };
54436   static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
54437   static_assert( std::is_standard_layout<PipelineViewportWScalingStateCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
54438 
54439 #ifdef VK_USE_PLATFORM_GGP
54440 
54441   namespace layout
54442   {
54443     struct PresentFrameTokenGGP
54444     {
54445     protected:
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::layout::PresentFrameTokenGGP54446       PresentFrameTokenGGP( GgpFrameToken frameToken_ = 0 )
54447         : frameToken( frameToken_ )
54448       {}
54449 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::layout::PresentFrameTokenGGP54450       PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs )
54451       {
54452         *reinterpret_cast<VkPresentFrameTokenGGP*>(this) = rhs;
54453       }
54454 
operator =VULKAN_HPP_NAMESPACE::layout::PresentFrameTokenGGP54455       PresentFrameTokenGGP& operator=( VkPresentFrameTokenGGP const & rhs )
54456       {
54457         *reinterpret_cast<VkPresentFrameTokenGGP*>(this) = rhs;
54458         return *this;
54459       }
54460 
54461     public:
54462       vk::StructureType sType = StructureType::ePresentFrameTokenGGP;
54463       const void* pNext = nullptr;
54464       GgpFrameToken frameToken;
54465     };
54466     static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "layout struct and wrapper have different size!" );
54467   }
54468 
54469   struct PresentFrameTokenGGP : public layout::PresentFrameTokenGGP
54470   {
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54471     PresentFrameTokenGGP( GgpFrameToken frameToken_ = 0 )
54472       : layout::PresentFrameTokenGGP( frameToken_ )
54473     {}
54474 
PresentFrameTokenGGPVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54475     PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs )
54476       : layout::PresentFrameTokenGGP( rhs )
54477     {}
54478 
operator =VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54479     PresentFrameTokenGGP& operator=( VkPresentFrameTokenGGP const & rhs )
54480     {
54481       *reinterpret_cast<VkPresentFrameTokenGGP*>(this) = rhs;
54482       return *this;
54483     }
54484 
setPNextVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54485     PresentFrameTokenGGP & setPNext( const void* pNext_ )
54486     {
54487       pNext = pNext_;
54488       return *this;
54489     }
54490 
setFrameTokenVULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54491     PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ )
54492     {
54493       frameToken = frameToken_;
54494       return *this;
54495     }
54496 
operator VkPresentFrameTokenGGP const&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54497     operator VkPresentFrameTokenGGP const&() const
54498     {
54499       return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
54500     }
54501 
operator VkPresentFrameTokenGGP&VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54502     operator VkPresentFrameTokenGGP &()
54503     {
54504       return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
54505     }
54506 
operator ==VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54507     bool operator==( PresentFrameTokenGGP const& rhs ) const
54508     {
54509       return ( sType == rhs.sType )
54510           && ( pNext == rhs.pNext )
54511           && ( frameToken == rhs.frameToken );
54512     }
54513 
operator !=VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP54514     bool operator!=( PresentFrameTokenGGP const& rhs ) const
54515     {
54516       return !operator==( rhs );
54517     }
54518 
54519   private:
54520     using layout::PresentFrameTokenGGP::sType;
54521   };
54522   static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
54523   static_assert( std::is_standard_layout<PresentFrameTokenGGP>::value, "struct wrapper is not a standard layout!" );
54524 #endif /*VK_USE_PLATFORM_GGP*/
54525 
54526   namespace layout
54527   {
54528     struct PresentInfoKHR
54529     {
54530     protected:
PresentInfoKHRVULKAN_HPP_NAMESPACE::layout::PresentInfoKHR54531       PresentInfoKHR( uint32_t waitSemaphoreCount_ = 0,
54532                       const vk::Semaphore* pWaitSemaphores_ = nullptr,
54533                       uint32_t swapchainCount_ = 0,
54534                       const vk::SwapchainKHR* pSwapchains_ = nullptr,
54535                       const uint32_t* pImageIndices_ = nullptr,
54536                       vk::Result* pResults_ = nullptr )
54537         : waitSemaphoreCount( waitSemaphoreCount_ )
54538         , pWaitSemaphores( pWaitSemaphores_ )
54539         , swapchainCount( swapchainCount_ )
54540         , pSwapchains( pSwapchains_ )
54541         , pImageIndices( pImageIndices_ )
54542         , pResults( pResults_ )
54543       {}
54544 
PresentInfoKHRVULKAN_HPP_NAMESPACE::layout::PresentInfoKHR54545       PresentInfoKHR( VkPresentInfoKHR const & rhs )
54546       {
54547         *reinterpret_cast<VkPresentInfoKHR*>(this) = rhs;
54548       }
54549 
operator =VULKAN_HPP_NAMESPACE::layout::PresentInfoKHR54550       PresentInfoKHR& operator=( VkPresentInfoKHR const & rhs )
54551       {
54552         *reinterpret_cast<VkPresentInfoKHR*>(this) = rhs;
54553         return *this;
54554       }
54555 
54556     public:
54557       vk::StructureType sType = StructureType::ePresentInfoKHR;
54558       const void* pNext = nullptr;
54559       uint32_t waitSemaphoreCount;
54560       const vk::Semaphore* pWaitSemaphores;
54561       uint32_t swapchainCount;
54562       const vk::SwapchainKHR* pSwapchains;
54563       const uint32_t* pImageIndices;
54564       vk::Result* pResults;
54565     };
54566     static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "layout struct and wrapper have different size!" );
54567   }
54568 
54569   struct PresentInfoKHR : public layout::PresentInfoKHR
54570   {
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR54571     PresentInfoKHR( uint32_t waitSemaphoreCount_ = 0,
54572                     const vk::Semaphore* pWaitSemaphores_ = nullptr,
54573                     uint32_t swapchainCount_ = 0,
54574                     const vk::SwapchainKHR* pSwapchains_ = nullptr,
54575                     const uint32_t* pImageIndices_ = nullptr,
54576                     vk::Result* pResults_ = nullptr )
54577       : layout::PresentInfoKHR( waitSemaphoreCount_, pWaitSemaphores_, swapchainCount_, pSwapchains_, pImageIndices_, pResults_ )
54578     {}
54579 
PresentInfoKHRVULKAN_HPP_NAMESPACE::PresentInfoKHR54580     PresentInfoKHR( VkPresentInfoKHR const & rhs )
54581       : layout::PresentInfoKHR( rhs )
54582     {}
54583 
operator =VULKAN_HPP_NAMESPACE::PresentInfoKHR54584     PresentInfoKHR& operator=( VkPresentInfoKHR const & rhs )
54585     {
54586       *reinterpret_cast<VkPresentInfoKHR*>(this) = rhs;
54587       return *this;
54588     }
54589 
setPNextVULKAN_HPP_NAMESPACE::PresentInfoKHR54590     PresentInfoKHR & setPNext( const void* pNext_ )
54591     {
54592       pNext = pNext_;
54593       return *this;
54594     }
54595 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::PresentInfoKHR54596     PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
54597     {
54598       waitSemaphoreCount = waitSemaphoreCount_;
54599       return *this;
54600     }
54601 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::PresentInfoKHR54602     PresentInfoKHR & setPWaitSemaphores( const vk::Semaphore* pWaitSemaphores_ )
54603     {
54604       pWaitSemaphores = pWaitSemaphores_;
54605       return *this;
54606     }
54607 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentInfoKHR54608     PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ )
54609     {
54610       swapchainCount = swapchainCount_;
54611       return *this;
54612     }
54613 
setPSwapchainsVULKAN_HPP_NAMESPACE::PresentInfoKHR54614     PresentInfoKHR & setPSwapchains( const vk::SwapchainKHR* pSwapchains_ )
54615     {
54616       pSwapchains = pSwapchains_;
54617       return *this;
54618     }
54619 
setPImageIndicesVULKAN_HPP_NAMESPACE::PresentInfoKHR54620     PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ )
54621     {
54622       pImageIndices = pImageIndices_;
54623       return *this;
54624     }
54625 
setPResultsVULKAN_HPP_NAMESPACE::PresentInfoKHR54626     PresentInfoKHR & setPResults( vk::Result* pResults_ )
54627     {
54628       pResults = pResults_;
54629       return *this;
54630     }
54631 
operator VkPresentInfoKHR const&VULKAN_HPP_NAMESPACE::PresentInfoKHR54632     operator VkPresentInfoKHR const&() const
54633     {
54634       return *reinterpret_cast<const VkPresentInfoKHR*>( this );
54635     }
54636 
operator VkPresentInfoKHR&VULKAN_HPP_NAMESPACE::PresentInfoKHR54637     operator VkPresentInfoKHR &()
54638     {
54639       return *reinterpret_cast<VkPresentInfoKHR*>( this );
54640     }
54641 
operator ==VULKAN_HPP_NAMESPACE::PresentInfoKHR54642     bool operator==( PresentInfoKHR const& rhs ) const
54643     {
54644       return ( sType == rhs.sType )
54645           && ( pNext == rhs.pNext )
54646           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
54647           && ( pWaitSemaphores == rhs.pWaitSemaphores )
54648           && ( swapchainCount == rhs.swapchainCount )
54649           && ( pSwapchains == rhs.pSwapchains )
54650           && ( pImageIndices == rhs.pImageIndices )
54651           && ( pResults == rhs.pResults );
54652     }
54653 
operator !=VULKAN_HPP_NAMESPACE::PresentInfoKHR54654     bool operator!=( PresentInfoKHR const& rhs ) const
54655     {
54656       return !operator==( rhs );
54657     }
54658 
54659   private:
54660     using layout::PresentInfoKHR::sType;
54661   };
54662   static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
54663   static_assert( std::is_standard_layout<PresentInfoKHR>::value, "struct wrapper is not a standard layout!" );
54664 
54665   struct RectLayerKHR
54666   {
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR54667     RectLayerKHR( vk::Offset2D offset_ = vk::Offset2D(),
54668                   vk::Extent2D extent_ = vk::Extent2D(),
54669                   uint32_t layer_ = 0 )
54670         : offset( offset_ )
54671         , extent( extent_ )
54672         , layer( layer_ )
54673     {}
54674 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR54675     explicit RectLayerKHR( Rect2D const& rect2D,
54676                            uint32_t layer_ = 0 )
54677       : offset( rect2D.offset )
54678       , extent( rect2D.extent )
54679       , layer( layer_ )
54680 
54681     {}
54682 
RectLayerKHRVULKAN_HPP_NAMESPACE::RectLayerKHR54683     RectLayerKHR( VkRectLayerKHR const & rhs )
54684     {
54685       *reinterpret_cast<VkRectLayerKHR*>(this) = rhs;
54686     }
54687 
operator =VULKAN_HPP_NAMESPACE::RectLayerKHR54688     RectLayerKHR& operator=( VkRectLayerKHR const & rhs )
54689     {
54690       *reinterpret_cast<VkRectLayerKHR*>(this) = rhs;
54691       return *this;
54692     }
54693 
setOffsetVULKAN_HPP_NAMESPACE::RectLayerKHR54694     RectLayerKHR & setOffset( vk::Offset2D offset_ )
54695     {
54696       offset = offset_;
54697       return *this;
54698     }
54699 
setExtentVULKAN_HPP_NAMESPACE::RectLayerKHR54700     RectLayerKHR & setExtent( vk::Extent2D extent_ )
54701     {
54702       extent = extent_;
54703       return *this;
54704     }
54705 
setLayerVULKAN_HPP_NAMESPACE::RectLayerKHR54706     RectLayerKHR & setLayer( uint32_t layer_ )
54707     {
54708       layer = layer_;
54709       return *this;
54710     }
54711 
operator VkRectLayerKHR const&VULKAN_HPP_NAMESPACE::RectLayerKHR54712     operator VkRectLayerKHR const&() const
54713     {
54714       return *reinterpret_cast<const VkRectLayerKHR*>( this );
54715     }
54716 
operator VkRectLayerKHR&VULKAN_HPP_NAMESPACE::RectLayerKHR54717     operator VkRectLayerKHR &()
54718     {
54719       return *reinterpret_cast<VkRectLayerKHR*>( this );
54720     }
54721 
operator ==VULKAN_HPP_NAMESPACE::RectLayerKHR54722     bool operator==( RectLayerKHR const& rhs ) const
54723     {
54724       return ( offset == rhs.offset )
54725           && ( extent == rhs.extent )
54726           && ( layer == rhs.layer );
54727     }
54728 
operator !=VULKAN_HPP_NAMESPACE::RectLayerKHR54729     bool operator!=( RectLayerKHR const& rhs ) const
54730     {
54731       return !operator==( rhs );
54732     }
54733 
54734   public:
54735     vk::Offset2D offset;
54736     vk::Extent2D extent;
54737     uint32_t layer;
54738   };
54739   static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
54740   static_assert( std::is_standard_layout<RectLayerKHR>::value, "struct wrapper is not a standard layout!" );
54741 
54742   struct PresentRegionKHR
54743   {
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR54744     PresentRegionKHR( uint32_t rectangleCount_ = 0,
54745                       const vk::RectLayerKHR* pRectangles_ = nullptr )
54746         : rectangleCount( rectangleCount_ )
54747         , pRectangles( pRectangles_ )
54748     {}
54749 
PresentRegionKHRVULKAN_HPP_NAMESPACE::PresentRegionKHR54750     PresentRegionKHR( VkPresentRegionKHR const & rhs )
54751     {
54752       *reinterpret_cast<VkPresentRegionKHR*>(this) = rhs;
54753     }
54754 
operator =VULKAN_HPP_NAMESPACE::PresentRegionKHR54755     PresentRegionKHR& operator=( VkPresentRegionKHR const & rhs )
54756     {
54757       *reinterpret_cast<VkPresentRegionKHR*>(this) = rhs;
54758       return *this;
54759     }
54760 
setRectangleCountVULKAN_HPP_NAMESPACE::PresentRegionKHR54761     PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ )
54762     {
54763       rectangleCount = rectangleCount_;
54764       return *this;
54765     }
54766 
setPRectanglesVULKAN_HPP_NAMESPACE::PresentRegionKHR54767     PresentRegionKHR & setPRectangles( const vk::RectLayerKHR* pRectangles_ )
54768     {
54769       pRectangles = pRectangles_;
54770       return *this;
54771     }
54772 
operator VkPresentRegionKHR const&VULKAN_HPP_NAMESPACE::PresentRegionKHR54773     operator VkPresentRegionKHR const&() const
54774     {
54775       return *reinterpret_cast<const VkPresentRegionKHR*>( this );
54776     }
54777 
operator VkPresentRegionKHR&VULKAN_HPP_NAMESPACE::PresentRegionKHR54778     operator VkPresentRegionKHR &()
54779     {
54780       return *reinterpret_cast<VkPresentRegionKHR*>( this );
54781     }
54782 
operator ==VULKAN_HPP_NAMESPACE::PresentRegionKHR54783     bool operator==( PresentRegionKHR const& rhs ) const
54784     {
54785       return ( rectangleCount == rhs.rectangleCount )
54786           && ( pRectangles == rhs.pRectangles );
54787     }
54788 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionKHR54789     bool operator!=( PresentRegionKHR const& rhs ) const
54790     {
54791       return !operator==( rhs );
54792     }
54793 
54794   public:
54795     uint32_t rectangleCount;
54796     const vk::RectLayerKHR* pRectangles;
54797   };
54798   static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
54799   static_assert( std::is_standard_layout<PresentRegionKHR>::value, "struct wrapper is not a standard layout!" );
54800 
54801   namespace layout
54802   {
54803     struct PresentRegionsKHR
54804     {
54805     protected:
PresentRegionsKHRVULKAN_HPP_NAMESPACE::layout::PresentRegionsKHR54806       PresentRegionsKHR( uint32_t swapchainCount_ = 0,
54807                          const vk::PresentRegionKHR* pRegions_ = nullptr )
54808         : swapchainCount( swapchainCount_ )
54809         , pRegions( pRegions_ )
54810       {}
54811 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::layout::PresentRegionsKHR54812       PresentRegionsKHR( VkPresentRegionsKHR const & rhs )
54813       {
54814         *reinterpret_cast<VkPresentRegionsKHR*>(this) = rhs;
54815       }
54816 
operator =VULKAN_HPP_NAMESPACE::layout::PresentRegionsKHR54817       PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs )
54818       {
54819         *reinterpret_cast<VkPresentRegionsKHR*>(this) = rhs;
54820         return *this;
54821       }
54822 
54823     public:
54824       vk::StructureType sType = StructureType::ePresentRegionsKHR;
54825       const void* pNext = nullptr;
54826       uint32_t swapchainCount;
54827       const vk::PresentRegionKHR* pRegions;
54828     };
54829     static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "layout struct and wrapper have different size!" );
54830   }
54831 
54832   struct PresentRegionsKHR : public layout::PresentRegionsKHR
54833   {
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR54834     PresentRegionsKHR( uint32_t swapchainCount_ = 0,
54835                        const vk::PresentRegionKHR* pRegions_ = nullptr )
54836       : layout::PresentRegionsKHR( swapchainCount_, pRegions_ )
54837     {}
54838 
PresentRegionsKHRVULKAN_HPP_NAMESPACE::PresentRegionsKHR54839     PresentRegionsKHR( VkPresentRegionsKHR const & rhs )
54840       : layout::PresentRegionsKHR( rhs )
54841     {}
54842 
operator =VULKAN_HPP_NAMESPACE::PresentRegionsKHR54843     PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs )
54844     {
54845       *reinterpret_cast<VkPresentRegionsKHR*>(this) = rhs;
54846       return *this;
54847     }
54848 
setPNextVULKAN_HPP_NAMESPACE::PresentRegionsKHR54849     PresentRegionsKHR & setPNext( const void* pNext_ )
54850     {
54851       pNext = pNext_;
54852       return *this;
54853     }
54854 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentRegionsKHR54855     PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ )
54856     {
54857       swapchainCount = swapchainCount_;
54858       return *this;
54859     }
54860 
setPRegionsVULKAN_HPP_NAMESPACE::PresentRegionsKHR54861     PresentRegionsKHR & setPRegions( const vk::PresentRegionKHR* pRegions_ )
54862     {
54863       pRegions = pRegions_;
54864       return *this;
54865     }
54866 
operator VkPresentRegionsKHR const&VULKAN_HPP_NAMESPACE::PresentRegionsKHR54867     operator VkPresentRegionsKHR const&() const
54868     {
54869       return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
54870     }
54871 
operator VkPresentRegionsKHR&VULKAN_HPP_NAMESPACE::PresentRegionsKHR54872     operator VkPresentRegionsKHR &()
54873     {
54874       return *reinterpret_cast<VkPresentRegionsKHR*>( this );
54875     }
54876 
operator ==VULKAN_HPP_NAMESPACE::PresentRegionsKHR54877     bool operator==( PresentRegionsKHR const& rhs ) const
54878     {
54879       return ( sType == rhs.sType )
54880           && ( pNext == rhs.pNext )
54881           && ( swapchainCount == rhs.swapchainCount )
54882           && ( pRegions == rhs.pRegions );
54883     }
54884 
operator !=VULKAN_HPP_NAMESPACE::PresentRegionsKHR54885     bool operator!=( PresentRegionsKHR const& rhs ) const
54886     {
54887       return !operator==( rhs );
54888     }
54889 
54890   private:
54891     using layout::PresentRegionsKHR::sType;
54892   };
54893   static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
54894   static_assert( std::is_standard_layout<PresentRegionsKHR>::value, "struct wrapper is not a standard layout!" );
54895 
54896   struct PresentTimeGOOGLE
54897   {
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54898     PresentTimeGOOGLE( uint32_t presentID_ = 0,
54899                        uint64_t desiredPresentTime_ = 0 )
54900         : presentID( presentID_ )
54901         , desiredPresentTime( desiredPresentTime_ )
54902     {}
54903 
PresentTimeGOOGLEVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54904     PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs )
54905     {
54906       *reinterpret_cast<VkPresentTimeGOOGLE*>(this) = rhs;
54907     }
54908 
operator =VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54909     PresentTimeGOOGLE& operator=( VkPresentTimeGOOGLE const & rhs )
54910     {
54911       *reinterpret_cast<VkPresentTimeGOOGLE*>(this) = rhs;
54912       return *this;
54913     }
54914 
setPresentIDVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54915     PresentTimeGOOGLE & setPresentID( uint32_t presentID_ )
54916     {
54917       presentID = presentID_;
54918       return *this;
54919     }
54920 
setDesiredPresentTimeVULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54921     PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ )
54922     {
54923       desiredPresentTime = desiredPresentTime_;
54924       return *this;
54925     }
54926 
operator VkPresentTimeGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54927     operator VkPresentTimeGOOGLE const&() const
54928     {
54929       return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
54930     }
54931 
operator VkPresentTimeGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54932     operator VkPresentTimeGOOGLE &()
54933     {
54934       return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
54935     }
54936 
operator ==VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54937     bool operator==( PresentTimeGOOGLE const& rhs ) const
54938     {
54939       return ( presentID == rhs.presentID )
54940           && ( desiredPresentTime == rhs.desiredPresentTime );
54941     }
54942 
operator !=VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE54943     bool operator!=( PresentTimeGOOGLE const& rhs ) const
54944     {
54945       return !operator==( rhs );
54946     }
54947 
54948   public:
54949     uint32_t presentID;
54950     uint64_t desiredPresentTime;
54951   };
54952   static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
54953   static_assert( std::is_standard_layout<PresentTimeGOOGLE>::value, "struct wrapper is not a standard layout!" );
54954 
54955   namespace layout
54956   {
54957     struct PresentTimesInfoGOOGLE
54958     {
54959     protected:
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::layout::PresentTimesInfoGOOGLE54960       PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = 0,
54961                               const vk::PresentTimeGOOGLE* pTimes_ = nullptr )
54962         : swapchainCount( swapchainCount_ )
54963         , pTimes( pTimes_ )
54964       {}
54965 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::layout::PresentTimesInfoGOOGLE54966       PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs )
54967       {
54968         *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this) = rhs;
54969       }
54970 
operator =VULKAN_HPP_NAMESPACE::layout::PresentTimesInfoGOOGLE54971       PresentTimesInfoGOOGLE& operator=( VkPresentTimesInfoGOOGLE const & rhs )
54972       {
54973         *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this) = rhs;
54974         return *this;
54975       }
54976 
54977     public:
54978       vk::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
54979       const void* pNext = nullptr;
54980       uint32_t swapchainCount;
54981       const vk::PresentTimeGOOGLE* pTimes;
54982     };
54983     static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "layout struct and wrapper have different size!" );
54984   }
54985 
54986   struct PresentTimesInfoGOOGLE : public layout::PresentTimesInfoGOOGLE
54987   {
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE54988     PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = 0,
54989                             const vk::PresentTimeGOOGLE* pTimes_ = nullptr )
54990       : layout::PresentTimesInfoGOOGLE( swapchainCount_, pTimes_ )
54991     {}
54992 
PresentTimesInfoGOOGLEVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE54993     PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs )
54994       : layout::PresentTimesInfoGOOGLE( rhs )
54995     {}
54996 
operator =VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE54997     PresentTimesInfoGOOGLE& operator=( VkPresentTimesInfoGOOGLE const & rhs )
54998     {
54999       *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this) = rhs;
55000       return *this;
55001     }
55002 
setPNextVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55003     PresentTimesInfoGOOGLE & setPNext( const void* pNext_ )
55004     {
55005       pNext = pNext_;
55006       return *this;
55007     }
55008 
setSwapchainCountVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55009     PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ )
55010     {
55011       swapchainCount = swapchainCount_;
55012       return *this;
55013     }
55014 
setPTimesVULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55015     PresentTimesInfoGOOGLE & setPTimes( const vk::PresentTimeGOOGLE* pTimes_ )
55016     {
55017       pTimes = pTimes_;
55018       return *this;
55019     }
55020 
operator VkPresentTimesInfoGOOGLE const&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55021     operator VkPresentTimesInfoGOOGLE const&() const
55022     {
55023       return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
55024     }
55025 
operator VkPresentTimesInfoGOOGLE&VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55026     operator VkPresentTimesInfoGOOGLE &()
55027     {
55028       return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
55029     }
55030 
operator ==VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55031     bool operator==( PresentTimesInfoGOOGLE const& rhs ) const
55032     {
55033       return ( sType == rhs.sType )
55034           && ( pNext == rhs.pNext )
55035           && ( swapchainCount == rhs.swapchainCount )
55036           && ( pTimes == rhs.pTimes );
55037     }
55038 
operator !=VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE55039     bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const
55040     {
55041       return !operator==( rhs );
55042     }
55043 
55044   private:
55045     using layout::PresentTimesInfoGOOGLE::sType;
55046   };
55047   static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
55048   static_assert( std::is_standard_layout<PresentTimesInfoGOOGLE>::value, "struct wrapper is not a standard layout!" );
55049 
55050   namespace layout
55051   {
55052     struct ProtectedSubmitInfo
55053     {
55054     protected:
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::layout::ProtectedSubmitInfo55055       ProtectedSubmitInfo( vk::Bool32 protectedSubmit_ = 0 )
55056         : protectedSubmit( protectedSubmit_ )
55057       {}
55058 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::layout::ProtectedSubmitInfo55059       ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs )
55060       {
55061         *reinterpret_cast<VkProtectedSubmitInfo*>(this) = rhs;
55062       }
55063 
operator =VULKAN_HPP_NAMESPACE::layout::ProtectedSubmitInfo55064       ProtectedSubmitInfo& operator=( VkProtectedSubmitInfo const & rhs )
55065       {
55066         *reinterpret_cast<VkProtectedSubmitInfo*>(this) = rhs;
55067         return *this;
55068       }
55069 
55070     public:
55071       vk::StructureType sType = StructureType::eProtectedSubmitInfo;
55072       const void* pNext = nullptr;
55073       vk::Bool32 protectedSubmit;
55074     };
55075     static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "layout struct and wrapper have different size!" );
55076   }
55077 
55078   struct ProtectedSubmitInfo : public layout::ProtectedSubmitInfo
55079   {
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55080     ProtectedSubmitInfo( vk::Bool32 protectedSubmit_ = 0 )
55081       : layout::ProtectedSubmitInfo( protectedSubmit_ )
55082     {}
55083 
ProtectedSubmitInfoVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55084     ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs )
55085       : layout::ProtectedSubmitInfo( rhs )
55086     {}
55087 
operator =VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55088     ProtectedSubmitInfo& operator=( VkProtectedSubmitInfo const & rhs )
55089     {
55090       *reinterpret_cast<VkProtectedSubmitInfo*>(this) = rhs;
55091       return *this;
55092     }
55093 
setPNextVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55094     ProtectedSubmitInfo & setPNext( const void* pNext_ )
55095     {
55096       pNext = pNext_;
55097       return *this;
55098     }
55099 
setProtectedSubmitVULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55100     ProtectedSubmitInfo & setProtectedSubmit( vk::Bool32 protectedSubmit_ )
55101     {
55102       protectedSubmit = protectedSubmit_;
55103       return *this;
55104     }
55105 
operator VkProtectedSubmitInfo const&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55106     operator VkProtectedSubmitInfo const&() const
55107     {
55108       return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
55109     }
55110 
operator VkProtectedSubmitInfo&VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55111     operator VkProtectedSubmitInfo &()
55112     {
55113       return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
55114     }
55115 
operator ==VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55116     bool operator==( ProtectedSubmitInfo const& rhs ) const
55117     {
55118       return ( sType == rhs.sType )
55119           && ( pNext == rhs.pNext )
55120           && ( protectedSubmit == rhs.protectedSubmit );
55121     }
55122 
operator !=VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo55123     bool operator!=( ProtectedSubmitInfo const& rhs ) const
55124     {
55125       return !operator==( rhs );
55126     }
55127 
55128   private:
55129     using layout::ProtectedSubmitInfo::sType;
55130   };
55131   static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
55132   static_assert( std::is_standard_layout<ProtectedSubmitInfo>::value, "struct wrapper is not a standard layout!" );
55133 
55134   namespace layout
55135   {
55136     struct QueryPoolCreateInfo
55137     {
55138     protected:
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfo55139       QueryPoolCreateInfo( vk::QueryPoolCreateFlags flags_ = vk::QueryPoolCreateFlags(),
55140                            vk::QueryType queryType_ = vk::QueryType::eOcclusion,
55141                            uint32_t queryCount_ = 0,
55142                            vk::QueryPipelineStatisticFlags pipelineStatistics_ = vk::QueryPipelineStatisticFlags() )
55143         : flags( flags_ )
55144         , queryType( queryType_ )
55145         , queryCount( queryCount_ )
55146         , pipelineStatistics( pipelineStatistics_ )
55147       {}
55148 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfo55149       QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs )
55150       {
55151         *reinterpret_cast<VkQueryPoolCreateInfo*>(this) = rhs;
55152       }
55153 
operator =VULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfo55154       QueryPoolCreateInfo& operator=( VkQueryPoolCreateInfo const & rhs )
55155       {
55156         *reinterpret_cast<VkQueryPoolCreateInfo*>(this) = rhs;
55157         return *this;
55158       }
55159 
55160     public:
55161       vk::StructureType sType = StructureType::eQueryPoolCreateInfo;
55162       const void* pNext = nullptr;
55163       vk::QueryPoolCreateFlags flags;
55164       vk::QueryType queryType;
55165       uint32_t queryCount;
55166       vk::QueryPipelineStatisticFlags pipelineStatistics;
55167     };
55168     static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "layout struct and wrapper have different size!" );
55169   }
55170 
55171   struct QueryPoolCreateInfo : public layout::QueryPoolCreateInfo
55172   {
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55173     QueryPoolCreateInfo( vk::QueryPoolCreateFlags flags_ = vk::QueryPoolCreateFlags(),
55174                          vk::QueryType queryType_ = vk::QueryType::eOcclusion,
55175                          uint32_t queryCount_ = 0,
55176                          vk::QueryPipelineStatisticFlags pipelineStatistics_ = vk::QueryPipelineStatisticFlags() )
55177       : layout::QueryPoolCreateInfo( flags_, queryType_, queryCount_, pipelineStatistics_ )
55178     {}
55179 
QueryPoolCreateInfoVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55180     QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs )
55181       : layout::QueryPoolCreateInfo( rhs )
55182     {}
55183 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55184     QueryPoolCreateInfo& operator=( VkQueryPoolCreateInfo const & rhs )
55185     {
55186       *reinterpret_cast<VkQueryPoolCreateInfo*>(this) = rhs;
55187       return *this;
55188     }
55189 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55190     QueryPoolCreateInfo & setPNext( const void* pNext_ )
55191     {
55192       pNext = pNext_;
55193       return *this;
55194     }
55195 
setFlagsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55196     QueryPoolCreateInfo & setFlags( vk::QueryPoolCreateFlags flags_ )
55197     {
55198       flags = flags_;
55199       return *this;
55200     }
55201 
setQueryTypeVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55202     QueryPoolCreateInfo & setQueryType( vk::QueryType queryType_ )
55203     {
55204       queryType = queryType_;
55205       return *this;
55206     }
55207 
setQueryCountVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55208     QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ )
55209     {
55210       queryCount = queryCount_;
55211       return *this;
55212     }
55213 
setPipelineStatisticsVULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55214     QueryPoolCreateInfo & setPipelineStatistics( vk::QueryPipelineStatisticFlags pipelineStatistics_ )
55215     {
55216       pipelineStatistics = pipelineStatistics_;
55217       return *this;
55218     }
55219 
operator VkQueryPoolCreateInfo const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55220     operator VkQueryPoolCreateInfo const&() const
55221     {
55222       return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
55223     }
55224 
operator VkQueryPoolCreateInfo&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55225     operator VkQueryPoolCreateInfo &()
55226     {
55227       return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
55228     }
55229 
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55230     bool operator==( QueryPoolCreateInfo const& rhs ) const
55231     {
55232       return ( sType == rhs.sType )
55233           && ( pNext == rhs.pNext )
55234           && ( flags == rhs.flags )
55235           && ( queryType == rhs.queryType )
55236           && ( queryCount == rhs.queryCount )
55237           && ( pipelineStatistics == rhs.pipelineStatistics );
55238     }
55239 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo55240     bool operator!=( QueryPoolCreateInfo const& rhs ) const
55241     {
55242       return !operator==( rhs );
55243     }
55244 
55245   private:
55246     using layout::QueryPoolCreateInfo::sType;
55247   };
55248   static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
55249   static_assert( std::is_standard_layout<QueryPoolCreateInfo>::value, "struct wrapper is not a standard layout!" );
55250 
55251   namespace layout
55252   {
55253     struct QueryPoolCreateInfoINTEL
55254     {
55255     protected:
QueryPoolCreateInfoINTELVULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfoINTEL55256       QueryPoolCreateInfoINTEL( vk::QueryPoolSamplingModeINTEL performanceCountersSampling_ = vk::QueryPoolSamplingModeINTEL::eManual )
55257         : performanceCountersSampling( performanceCountersSampling_ )
55258       {}
55259 
QueryPoolCreateInfoINTELVULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfoINTEL55260       QueryPoolCreateInfoINTEL( VkQueryPoolCreateInfoINTEL const & rhs )
55261       {
55262         *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>(this) = rhs;
55263       }
55264 
operator =VULKAN_HPP_NAMESPACE::layout::QueryPoolCreateInfoINTEL55265       QueryPoolCreateInfoINTEL& operator=( VkQueryPoolCreateInfoINTEL const & rhs )
55266       {
55267         *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>(this) = rhs;
55268         return *this;
55269       }
55270 
55271     public:
55272       vk::StructureType sType = StructureType::eQueryPoolCreateInfoINTEL;
55273       const void* pNext = nullptr;
55274       vk::QueryPoolSamplingModeINTEL performanceCountersSampling;
55275     };
55276     static_assert( sizeof( QueryPoolCreateInfoINTEL ) == sizeof( VkQueryPoolCreateInfoINTEL ), "layout struct and wrapper have different size!" );
55277   }
55278 
55279   struct QueryPoolCreateInfoINTEL : public layout::QueryPoolCreateInfoINTEL
55280   {
QueryPoolCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55281     QueryPoolCreateInfoINTEL( vk::QueryPoolSamplingModeINTEL performanceCountersSampling_ = vk::QueryPoolSamplingModeINTEL::eManual )
55282       : layout::QueryPoolCreateInfoINTEL( performanceCountersSampling_ )
55283     {}
55284 
QueryPoolCreateInfoINTELVULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55285     QueryPoolCreateInfoINTEL( VkQueryPoolCreateInfoINTEL const & rhs )
55286       : layout::QueryPoolCreateInfoINTEL( rhs )
55287     {}
55288 
operator =VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55289     QueryPoolCreateInfoINTEL& operator=( VkQueryPoolCreateInfoINTEL const & rhs )
55290     {
55291       *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>(this) = rhs;
55292       return *this;
55293     }
55294 
setPNextVULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55295     QueryPoolCreateInfoINTEL & setPNext( const void* pNext_ )
55296     {
55297       pNext = pNext_;
55298       return *this;
55299     }
55300 
setPerformanceCountersSamplingVULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55301     QueryPoolCreateInfoINTEL & setPerformanceCountersSampling( vk::QueryPoolSamplingModeINTEL performanceCountersSampling_ )
55302     {
55303       performanceCountersSampling = performanceCountersSampling_;
55304       return *this;
55305     }
55306 
operator VkQueryPoolCreateInfoINTEL const&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55307     operator VkQueryPoolCreateInfoINTEL const&() const
55308     {
55309       return *reinterpret_cast<const VkQueryPoolCreateInfoINTEL*>( this );
55310     }
55311 
operator VkQueryPoolCreateInfoINTEL&VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55312     operator VkQueryPoolCreateInfoINTEL &()
55313     {
55314       return *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>( this );
55315     }
55316 
operator ==VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55317     bool operator==( QueryPoolCreateInfoINTEL const& rhs ) const
55318     {
55319       return ( sType == rhs.sType )
55320           && ( pNext == rhs.pNext )
55321           && ( performanceCountersSampling == rhs.performanceCountersSampling );
55322     }
55323 
operator !=VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL55324     bool operator!=( QueryPoolCreateInfoINTEL const& rhs ) const
55325     {
55326       return !operator==( rhs );
55327     }
55328 
55329   private:
55330     using layout::QueryPoolCreateInfoINTEL::sType;
55331   };
55332   static_assert( sizeof( QueryPoolCreateInfoINTEL ) == sizeof( VkQueryPoolCreateInfoINTEL ), "struct and wrapper have different size!" );
55333   static_assert( std::is_standard_layout<QueryPoolCreateInfoINTEL>::value, "struct wrapper is not a standard layout!" );
55334 
55335   namespace layout
55336   {
55337     struct QueueFamilyCheckpointPropertiesNV
55338     {
55339     protected:
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::layout::QueueFamilyCheckpointPropertiesNV55340       QueueFamilyCheckpointPropertiesNV( vk::PipelineStageFlags checkpointExecutionStageMask_ = vk::PipelineStageFlags() )
55341         : checkpointExecutionStageMask( checkpointExecutionStageMask_ )
55342       {}
55343 
QueueFamilyCheckpointPropertiesNVVULKAN_HPP_NAMESPACE::layout::QueueFamilyCheckpointPropertiesNV55344       QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs )
55345       {
55346         *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(this) = rhs;
55347       }
55348 
operator =VULKAN_HPP_NAMESPACE::layout::QueueFamilyCheckpointPropertiesNV55349       QueueFamilyCheckpointPropertiesNV& operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs )
55350       {
55351         *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(this) = rhs;
55352         return *this;
55353       }
55354 
55355     public:
55356       vk::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
55357       void* pNext = nullptr;
55358       vk::PipelineStageFlags checkpointExecutionStageMask;
55359     };
55360     static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "layout struct and wrapper have different size!" );
55361   }
55362 
55363   struct QueueFamilyCheckpointPropertiesNV : public layout::QueueFamilyCheckpointPropertiesNV
55364   {
operator VkQueueFamilyCheckpointPropertiesNV const&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV55365     operator VkQueueFamilyCheckpointPropertiesNV const&() const
55366     {
55367       return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
55368     }
55369 
operator VkQueueFamilyCheckpointPropertiesNV&VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV55370     operator VkQueueFamilyCheckpointPropertiesNV &()
55371     {
55372       return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
55373     }
55374 
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV55375     bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const
55376     {
55377       return ( sType == rhs.sType )
55378           && ( pNext == rhs.pNext )
55379           && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
55380     }
55381 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV55382     bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const
55383     {
55384       return !operator==( rhs );
55385     }
55386 
55387   private:
55388     using layout::QueueFamilyCheckpointPropertiesNV::sType;
55389   };
55390   static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
55391   static_assert( std::is_standard_layout<QueueFamilyCheckpointPropertiesNV>::value, "struct wrapper is not a standard layout!" );
55392 
55393   struct QueueFamilyProperties
55394   {
operator VkQueueFamilyProperties const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties55395     operator VkQueueFamilyProperties const&() const
55396     {
55397       return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
55398     }
55399 
operator VkQueueFamilyProperties&VULKAN_HPP_NAMESPACE::QueueFamilyProperties55400     operator VkQueueFamilyProperties &()
55401     {
55402       return *reinterpret_cast<VkQueueFamilyProperties*>( this );
55403     }
55404 
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties55405     bool operator==( QueueFamilyProperties const& rhs ) const
55406     {
55407       return ( queueFlags == rhs.queueFlags )
55408           && ( queueCount == rhs.queueCount )
55409           && ( timestampValidBits == rhs.timestampValidBits )
55410           && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
55411     }
55412 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties55413     bool operator!=( QueueFamilyProperties const& rhs ) const
55414     {
55415       return !operator==( rhs );
55416     }
55417 
55418   public:
55419     vk::QueueFlags queueFlags;
55420     uint32_t queueCount;
55421     uint32_t timestampValidBits;
55422     vk::Extent3D minImageTransferGranularity;
55423   };
55424   static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
55425   static_assert( std::is_standard_layout<QueueFamilyProperties>::value, "struct wrapper is not a standard layout!" );
55426 
55427   namespace layout
55428   {
55429     struct QueueFamilyProperties2
55430     {
55431     protected:
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::layout::QueueFamilyProperties255432       QueueFamilyProperties2( vk::QueueFamilyProperties queueFamilyProperties_ = vk::QueueFamilyProperties() )
55433         : queueFamilyProperties( queueFamilyProperties_ )
55434       {}
55435 
QueueFamilyProperties2VULKAN_HPP_NAMESPACE::layout::QueueFamilyProperties255436       QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs )
55437       {
55438         *reinterpret_cast<VkQueueFamilyProperties2*>(this) = rhs;
55439       }
55440 
operator =VULKAN_HPP_NAMESPACE::layout::QueueFamilyProperties255441       QueueFamilyProperties2& operator=( VkQueueFamilyProperties2 const & rhs )
55442       {
55443         *reinterpret_cast<VkQueueFamilyProperties2*>(this) = rhs;
55444         return *this;
55445       }
55446 
55447     public:
55448       vk::StructureType sType = StructureType::eQueueFamilyProperties2;
55449       void* pNext = nullptr;
55450       vk::QueueFamilyProperties queueFamilyProperties;
55451     };
55452     static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "layout struct and wrapper have different size!" );
55453   }
55454 
55455   struct QueueFamilyProperties2 : public layout::QueueFamilyProperties2
55456   {
operator VkQueueFamilyProperties2 const&VULKAN_HPP_NAMESPACE::QueueFamilyProperties255457     operator VkQueueFamilyProperties2 const&() const
55458     {
55459       return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
55460     }
55461 
operator VkQueueFamilyProperties2&VULKAN_HPP_NAMESPACE::QueueFamilyProperties255462     operator VkQueueFamilyProperties2 &()
55463     {
55464       return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
55465     }
55466 
operator ==VULKAN_HPP_NAMESPACE::QueueFamilyProperties255467     bool operator==( QueueFamilyProperties2 const& rhs ) const
55468     {
55469       return ( sType == rhs.sType )
55470           && ( pNext == rhs.pNext )
55471           && ( queueFamilyProperties == rhs.queueFamilyProperties );
55472     }
55473 
operator !=VULKAN_HPP_NAMESPACE::QueueFamilyProperties255474     bool operator!=( QueueFamilyProperties2 const& rhs ) const
55475     {
55476       return !operator==( rhs );
55477     }
55478 
55479   private:
55480     using layout::QueueFamilyProperties2::sType;
55481   };
55482   static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
55483   static_assert( std::is_standard_layout<QueueFamilyProperties2>::value, "struct wrapper is not a standard layout!" );
55484 
55485   namespace layout
55486   {
55487     struct RayTracingShaderGroupCreateInfoNV
55488     {
55489     protected:
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::layout::RayTracingShaderGroupCreateInfoNV55490       RayTracingShaderGroupCreateInfoNV( vk::RayTracingShaderGroupTypeNV type_ = vk::RayTracingShaderGroupTypeNV::eGeneral,
55491                                          uint32_t generalShader_ = 0,
55492                                          uint32_t closestHitShader_ = 0,
55493                                          uint32_t anyHitShader_ = 0,
55494                                          uint32_t intersectionShader_ = 0 )
55495         : type( type_ )
55496         , generalShader( generalShader_ )
55497         , closestHitShader( closestHitShader_ )
55498         , anyHitShader( anyHitShader_ )
55499         , intersectionShader( intersectionShader_ )
55500       {}
55501 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::layout::RayTracingShaderGroupCreateInfoNV55502       RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs )
55503       {
55504         *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>(this) = rhs;
55505       }
55506 
operator =VULKAN_HPP_NAMESPACE::layout::RayTracingShaderGroupCreateInfoNV55507       RayTracingShaderGroupCreateInfoNV& operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs )
55508       {
55509         *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>(this) = rhs;
55510         return *this;
55511       }
55512 
55513     public:
55514       vk::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
55515       const void* pNext = nullptr;
55516       vk::RayTracingShaderGroupTypeNV type;
55517       uint32_t generalShader;
55518       uint32_t closestHitShader;
55519       uint32_t anyHitShader;
55520       uint32_t intersectionShader;
55521     };
55522     static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "layout struct and wrapper have different size!" );
55523   }
55524 
55525   struct RayTracingShaderGroupCreateInfoNV : public layout::RayTracingShaderGroupCreateInfoNV
55526   {
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55527     RayTracingShaderGroupCreateInfoNV( vk::RayTracingShaderGroupTypeNV type_ = vk::RayTracingShaderGroupTypeNV::eGeneral,
55528                                        uint32_t generalShader_ = 0,
55529                                        uint32_t closestHitShader_ = 0,
55530                                        uint32_t anyHitShader_ = 0,
55531                                        uint32_t intersectionShader_ = 0 )
55532       : layout::RayTracingShaderGroupCreateInfoNV( type_, generalShader_, closestHitShader_, anyHitShader_, intersectionShader_ )
55533     {}
55534 
RayTracingShaderGroupCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55535     RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs )
55536       : layout::RayTracingShaderGroupCreateInfoNV( rhs )
55537     {}
55538 
operator =VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55539     RayTracingShaderGroupCreateInfoNV& operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs )
55540     {
55541       *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>(this) = rhs;
55542       return *this;
55543     }
55544 
setPNextVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55545     RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ )
55546     {
55547       pNext = pNext_;
55548       return *this;
55549     }
55550 
setTypeVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55551     RayTracingShaderGroupCreateInfoNV & setType( vk::RayTracingShaderGroupTypeNV type_ )
55552     {
55553       type = type_;
55554       return *this;
55555     }
55556 
setGeneralShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55557     RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ )
55558     {
55559       generalShader = generalShader_;
55560       return *this;
55561     }
55562 
setClosestHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55563     RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ )
55564     {
55565       closestHitShader = closestHitShader_;
55566       return *this;
55567     }
55568 
setAnyHitShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55569     RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ )
55570     {
55571       anyHitShader = anyHitShader_;
55572       return *this;
55573     }
55574 
setIntersectionShaderVULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55575     RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ )
55576     {
55577       intersectionShader = intersectionShader_;
55578       return *this;
55579     }
55580 
operator VkRayTracingShaderGroupCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55581     operator VkRayTracingShaderGroupCreateInfoNV const&() const
55582     {
55583       return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
55584     }
55585 
operator VkRayTracingShaderGroupCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55586     operator VkRayTracingShaderGroupCreateInfoNV &()
55587     {
55588       return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
55589     }
55590 
operator ==VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55591     bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const
55592     {
55593       return ( sType == rhs.sType )
55594           && ( pNext == rhs.pNext )
55595           && ( type == rhs.type )
55596           && ( generalShader == rhs.generalShader )
55597           && ( closestHitShader == rhs.closestHitShader )
55598           && ( anyHitShader == rhs.anyHitShader )
55599           && ( intersectionShader == rhs.intersectionShader );
55600     }
55601 
operator !=VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV55602     bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const
55603     {
55604       return !operator==( rhs );
55605     }
55606 
55607   private:
55608     using layout::RayTracingShaderGroupCreateInfoNV::sType;
55609   };
55610   static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
55611   static_assert( std::is_standard_layout<RayTracingShaderGroupCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
55612 
55613   namespace layout
55614   {
55615     struct RayTracingPipelineCreateInfoNV
55616     {
55617     protected:
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::layout::RayTracingPipelineCreateInfoNV55618       RayTracingPipelineCreateInfoNV( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
55619                                       uint32_t stageCount_ = 0,
55620                                       const vk::PipelineShaderStageCreateInfo* pStages_ = nullptr,
55621                                       uint32_t groupCount_ = 0,
55622                                       const vk::RayTracingShaderGroupCreateInfoNV* pGroups_ = nullptr,
55623                                       uint32_t maxRecursionDepth_ = 0,
55624                                       vk::PipelineLayout layout_ = vk::PipelineLayout(),
55625                                       vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
55626                                       int32_t basePipelineIndex_ = 0 )
55627         : flags( flags_ )
55628         , stageCount( stageCount_ )
55629         , pStages( pStages_ )
55630         , groupCount( groupCount_ )
55631         , pGroups( pGroups_ )
55632         , maxRecursionDepth( maxRecursionDepth_ )
55633         , layout( layout_ )
55634         , basePipelineHandle( basePipelineHandle_ )
55635         , basePipelineIndex( basePipelineIndex_ )
55636       {}
55637 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::layout::RayTracingPipelineCreateInfoNV55638       RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs )
55639       {
55640         *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>(this) = rhs;
55641       }
55642 
operator =VULKAN_HPP_NAMESPACE::layout::RayTracingPipelineCreateInfoNV55643       RayTracingPipelineCreateInfoNV& operator=( VkRayTracingPipelineCreateInfoNV const & rhs )
55644       {
55645         *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>(this) = rhs;
55646         return *this;
55647       }
55648 
55649     public:
55650       vk::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
55651       const void* pNext = nullptr;
55652       vk::PipelineCreateFlags flags;
55653       uint32_t stageCount;
55654       const vk::PipelineShaderStageCreateInfo* pStages;
55655       uint32_t groupCount;
55656       const vk::RayTracingShaderGroupCreateInfoNV* pGroups;
55657       uint32_t maxRecursionDepth;
55658       vk::PipelineLayout layout;
55659       vk::Pipeline basePipelineHandle;
55660       int32_t basePipelineIndex;
55661     };
55662     static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "layout struct and wrapper have different size!" );
55663   }
55664 
55665   struct RayTracingPipelineCreateInfoNV : public layout::RayTracingPipelineCreateInfoNV
55666   {
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55667     RayTracingPipelineCreateInfoNV( vk::PipelineCreateFlags flags_ = vk::PipelineCreateFlags(),
55668                                     uint32_t stageCount_ = 0,
55669                                     const vk::PipelineShaderStageCreateInfo* pStages_ = nullptr,
55670                                     uint32_t groupCount_ = 0,
55671                                     const vk::RayTracingShaderGroupCreateInfoNV* pGroups_ = nullptr,
55672                                     uint32_t maxRecursionDepth_ = 0,
55673                                     vk::PipelineLayout layout_ = vk::PipelineLayout(),
55674                                     vk::Pipeline basePipelineHandle_ = vk::Pipeline(),
55675                                     int32_t basePipelineIndex_ = 0 )
55676       : layout::RayTracingPipelineCreateInfoNV( flags_, stageCount_, pStages_, groupCount_, pGroups_, maxRecursionDepth_, layout_, basePipelineHandle_, basePipelineIndex_ )
55677     {}
55678 
RayTracingPipelineCreateInfoNVVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55679     RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs )
55680       : layout::RayTracingPipelineCreateInfoNV( rhs )
55681     {}
55682 
operator =VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55683     RayTracingPipelineCreateInfoNV& operator=( VkRayTracingPipelineCreateInfoNV const & rhs )
55684     {
55685       *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>(this) = rhs;
55686       return *this;
55687     }
55688 
setPNextVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55689     RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ )
55690     {
55691       pNext = pNext_;
55692       return *this;
55693     }
55694 
setFlagsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55695     RayTracingPipelineCreateInfoNV & setFlags( vk::PipelineCreateFlags flags_ )
55696     {
55697       flags = flags_;
55698       return *this;
55699     }
55700 
setStageCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55701     RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ )
55702     {
55703       stageCount = stageCount_;
55704       return *this;
55705     }
55706 
setPStagesVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55707     RayTracingPipelineCreateInfoNV & setPStages( const vk::PipelineShaderStageCreateInfo* pStages_ )
55708     {
55709       pStages = pStages_;
55710       return *this;
55711     }
55712 
setGroupCountVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55713     RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ )
55714     {
55715       groupCount = groupCount_;
55716       return *this;
55717     }
55718 
setPGroupsVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55719     RayTracingPipelineCreateInfoNV & setPGroups( const vk::RayTracingShaderGroupCreateInfoNV* pGroups_ )
55720     {
55721       pGroups = pGroups_;
55722       return *this;
55723     }
55724 
setMaxRecursionDepthVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55725     RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ )
55726     {
55727       maxRecursionDepth = maxRecursionDepth_;
55728       return *this;
55729     }
55730 
setLayoutVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55731     RayTracingPipelineCreateInfoNV & setLayout( vk::PipelineLayout layout_ )
55732     {
55733       layout = layout_;
55734       return *this;
55735     }
55736 
setBasePipelineHandleVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55737     RayTracingPipelineCreateInfoNV & setBasePipelineHandle( vk::Pipeline basePipelineHandle_ )
55738     {
55739       basePipelineHandle = basePipelineHandle_;
55740       return *this;
55741     }
55742 
setBasePipelineIndexVULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55743     RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ )
55744     {
55745       basePipelineIndex = basePipelineIndex_;
55746       return *this;
55747     }
55748 
operator VkRayTracingPipelineCreateInfoNV const&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55749     operator VkRayTracingPipelineCreateInfoNV const&() const
55750     {
55751       return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
55752     }
55753 
operator VkRayTracingPipelineCreateInfoNV&VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55754     operator VkRayTracingPipelineCreateInfoNV &()
55755     {
55756       return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
55757     }
55758 
operator ==VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55759     bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const
55760     {
55761       return ( sType == rhs.sType )
55762           && ( pNext == rhs.pNext )
55763           && ( flags == rhs.flags )
55764           && ( stageCount == rhs.stageCount )
55765           && ( pStages == rhs.pStages )
55766           && ( groupCount == rhs.groupCount )
55767           && ( pGroups == rhs.pGroups )
55768           && ( maxRecursionDepth == rhs.maxRecursionDepth )
55769           && ( layout == rhs.layout )
55770           && ( basePipelineHandle == rhs.basePipelineHandle )
55771           && ( basePipelineIndex == rhs.basePipelineIndex );
55772     }
55773 
operator !=VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV55774     bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const
55775     {
55776       return !operator==( rhs );
55777     }
55778 
55779   private:
55780     using layout::RayTracingPipelineCreateInfoNV::sType;
55781   };
55782   static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
55783   static_assert( std::is_standard_layout<RayTracingPipelineCreateInfoNV>::value, "struct wrapper is not a standard layout!" );
55784 
55785   struct RefreshCycleDurationGOOGLE
55786   {
operator VkRefreshCycleDurationGOOGLE const&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE55787     operator VkRefreshCycleDurationGOOGLE const&() const
55788     {
55789       return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
55790     }
55791 
operator VkRefreshCycleDurationGOOGLE&VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE55792     operator VkRefreshCycleDurationGOOGLE &()
55793     {
55794       return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
55795     }
55796 
operator ==VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE55797     bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const
55798     {
55799       return ( refreshDuration == rhs.refreshDuration );
55800     }
55801 
operator !=VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE55802     bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const
55803     {
55804       return !operator==( rhs );
55805     }
55806 
55807   public:
55808     uint64_t refreshDuration;
55809   };
55810   static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
55811   static_assert( std::is_standard_layout<RefreshCycleDurationGOOGLE>::value, "struct wrapper is not a standard layout!" );
55812 
55813   namespace layout
55814   {
55815     struct RenderPassAttachmentBeginInfoKHR
55816     {
55817     protected:
RenderPassAttachmentBeginInfoKHRVULKAN_HPP_NAMESPACE::layout::RenderPassAttachmentBeginInfoKHR55818       RenderPassAttachmentBeginInfoKHR( uint32_t attachmentCount_ = 0,
55819                                         const vk::ImageView* pAttachments_ = nullptr )
55820         : attachmentCount( attachmentCount_ )
55821         , pAttachments( pAttachments_ )
55822       {}
55823 
RenderPassAttachmentBeginInfoKHRVULKAN_HPP_NAMESPACE::layout::RenderPassAttachmentBeginInfoKHR55824       RenderPassAttachmentBeginInfoKHR( VkRenderPassAttachmentBeginInfoKHR const & rhs )
55825       {
55826         *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>(this) = rhs;
55827       }
55828 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassAttachmentBeginInfoKHR55829       RenderPassAttachmentBeginInfoKHR& operator=( VkRenderPassAttachmentBeginInfoKHR const & rhs )
55830       {
55831         *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>(this) = rhs;
55832         return *this;
55833       }
55834 
55835     public:
55836       vk::StructureType sType = StructureType::eRenderPassAttachmentBeginInfoKHR;
55837       const void* pNext = nullptr;
55838       uint32_t attachmentCount;
55839       const vk::ImageView* pAttachments;
55840     };
55841     static_assert( sizeof( RenderPassAttachmentBeginInfoKHR ) == sizeof( VkRenderPassAttachmentBeginInfoKHR ), "layout struct and wrapper have different size!" );
55842   }
55843 
55844   struct RenderPassAttachmentBeginInfoKHR : public layout::RenderPassAttachmentBeginInfoKHR
55845   {
RenderPassAttachmentBeginInfoKHRVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55846     RenderPassAttachmentBeginInfoKHR( uint32_t attachmentCount_ = 0,
55847                                       const vk::ImageView* pAttachments_ = nullptr )
55848       : layout::RenderPassAttachmentBeginInfoKHR( attachmentCount_, pAttachments_ )
55849     {}
55850 
RenderPassAttachmentBeginInfoKHRVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55851     RenderPassAttachmentBeginInfoKHR( VkRenderPassAttachmentBeginInfoKHR const & rhs )
55852       : layout::RenderPassAttachmentBeginInfoKHR( rhs )
55853     {}
55854 
operator =VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55855     RenderPassAttachmentBeginInfoKHR& operator=( VkRenderPassAttachmentBeginInfoKHR const & rhs )
55856     {
55857       *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>(this) = rhs;
55858       return *this;
55859     }
55860 
setPNextVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55861     RenderPassAttachmentBeginInfoKHR & setPNext( const void* pNext_ )
55862     {
55863       pNext = pNext_;
55864       return *this;
55865     }
55866 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55867     RenderPassAttachmentBeginInfoKHR & setAttachmentCount( uint32_t attachmentCount_ )
55868     {
55869       attachmentCount = attachmentCount_;
55870       return *this;
55871     }
55872 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55873     RenderPassAttachmentBeginInfoKHR & setPAttachments( const vk::ImageView* pAttachments_ )
55874     {
55875       pAttachments = pAttachments_;
55876       return *this;
55877     }
55878 
operator VkRenderPassAttachmentBeginInfoKHR const&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55879     operator VkRenderPassAttachmentBeginInfoKHR const&() const
55880     {
55881       return *reinterpret_cast<const VkRenderPassAttachmentBeginInfoKHR*>( this );
55882     }
55883 
operator VkRenderPassAttachmentBeginInfoKHR&VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55884     operator VkRenderPassAttachmentBeginInfoKHR &()
55885     {
55886       return *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>( this );
55887     }
55888 
operator ==VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55889     bool operator==( RenderPassAttachmentBeginInfoKHR const& rhs ) const
55890     {
55891       return ( sType == rhs.sType )
55892           && ( pNext == rhs.pNext )
55893           && ( attachmentCount == rhs.attachmentCount )
55894           && ( pAttachments == rhs.pAttachments );
55895     }
55896 
operator !=VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfoKHR55897     bool operator!=( RenderPassAttachmentBeginInfoKHR const& rhs ) const
55898     {
55899       return !operator==( rhs );
55900     }
55901 
55902   private:
55903     using layout::RenderPassAttachmentBeginInfoKHR::sType;
55904   };
55905   static_assert( sizeof( RenderPassAttachmentBeginInfoKHR ) == sizeof( VkRenderPassAttachmentBeginInfoKHR ), "struct and wrapper have different size!" );
55906   static_assert( std::is_standard_layout<RenderPassAttachmentBeginInfoKHR>::value, "struct wrapper is not a standard layout!" );
55907 
55908   namespace layout
55909   {
55910     struct RenderPassBeginInfo
55911     {
55912     protected:
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::layout::RenderPassBeginInfo55913       RenderPassBeginInfo( vk::RenderPass renderPass_ = vk::RenderPass(),
55914                            vk::Framebuffer framebuffer_ = vk::Framebuffer(),
55915                            vk::Rect2D renderArea_ = vk::Rect2D(),
55916                            uint32_t clearValueCount_ = 0,
55917                            const vk::ClearValue* pClearValues_ = nullptr )
55918         : renderPass( renderPass_ )
55919         , framebuffer( framebuffer_ )
55920         , renderArea( renderArea_ )
55921         , clearValueCount( clearValueCount_ )
55922         , pClearValues( pClearValues_ )
55923       {}
55924 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::layout::RenderPassBeginInfo55925       RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs )
55926       {
55927         *reinterpret_cast<VkRenderPassBeginInfo*>(this) = rhs;
55928       }
55929 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassBeginInfo55930       RenderPassBeginInfo& operator=( VkRenderPassBeginInfo const & rhs )
55931       {
55932         *reinterpret_cast<VkRenderPassBeginInfo*>(this) = rhs;
55933         return *this;
55934       }
55935 
55936     public:
55937       vk::StructureType sType = StructureType::eRenderPassBeginInfo;
55938       const void* pNext = nullptr;
55939       vk::RenderPass renderPass;
55940       vk::Framebuffer framebuffer;
55941       vk::Rect2D renderArea;
55942       uint32_t clearValueCount;
55943       const vk::ClearValue* pClearValues;
55944     };
55945     static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "layout struct and wrapper have different size!" );
55946   }
55947 
55948   struct RenderPassBeginInfo : public layout::RenderPassBeginInfo
55949   {
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55950     RenderPassBeginInfo( vk::RenderPass renderPass_ = vk::RenderPass(),
55951                          vk::Framebuffer framebuffer_ = vk::Framebuffer(),
55952                          vk::Rect2D renderArea_ = vk::Rect2D(),
55953                          uint32_t clearValueCount_ = 0,
55954                          const vk::ClearValue* pClearValues_ = nullptr )
55955       : layout::RenderPassBeginInfo( renderPass_, framebuffer_, renderArea_, clearValueCount_, pClearValues_ )
55956     {}
55957 
RenderPassBeginInfoVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55958     RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs )
55959       : layout::RenderPassBeginInfo( rhs )
55960     {}
55961 
operator =VULKAN_HPP_NAMESPACE::RenderPassBeginInfo55962     RenderPassBeginInfo& operator=( VkRenderPassBeginInfo const & rhs )
55963     {
55964       *reinterpret_cast<VkRenderPassBeginInfo*>(this) = rhs;
55965       return *this;
55966     }
55967 
setPNextVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55968     RenderPassBeginInfo & setPNext( const void* pNext_ )
55969     {
55970       pNext = pNext_;
55971       return *this;
55972     }
55973 
setRenderPassVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55974     RenderPassBeginInfo & setRenderPass( vk::RenderPass renderPass_ )
55975     {
55976       renderPass = renderPass_;
55977       return *this;
55978     }
55979 
setFramebufferVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55980     RenderPassBeginInfo & setFramebuffer( vk::Framebuffer framebuffer_ )
55981     {
55982       framebuffer = framebuffer_;
55983       return *this;
55984     }
55985 
setRenderAreaVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55986     RenderPassBeginInfo & setRenderArea( vk::Rect2D renderArea_ )
55987     {
55988       renderArea = renderArea_;
55989       return *this;
55990     }
55991 
setClearValueCountVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55992     RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ )
55993     {
55994       clearValueCount = clearValueCount_;
55995       return *this;
55996     }
55997 
setPClearValuesVULKAN_HPP_NAMESPACE::RenderPassBeginInfo55998     RenderPassBeginInfo & setPClearValues( const vk::ClearValue* pClearValues_ )
55999     {
56000       pClearValues = pClearValues_;
56001       return *this;
56002     }
56003 
operator VkRenderPassBeginInfo const&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo56004     operator VkRenderPassBeginInfo const&() const
56005     {
56006       return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
56007     }
56008 
operator VkRenderPassBeginInfo&VULKAN_HPP_NAMESPACE::RenderPassBeginInfo56009     operator VkRenderPassBeginInfo &()
56010     {
56011       return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
56012     }
56013 
operator ==VULKAN_HPP_NAMESPACE::RenderPassBeginInfo56014     bool operator==( RenderPassBeginInfo const& rhs ) const
56015     {
56016       return ( sType == rhs.sType )
56017           && ( pNext == rhs.pNext )
56018           && ( renderPass == rhs.renderPass )
56019           && ( framebuffer == rhs.framebuffer )
56020           && ( renderArea == rhs.renderArea )
56021           && ( clearValueCount == rhs.clearValueCount )
56022           && ( pClearValues == rhs.pClearValues );
56023     }
56024 
operator !=VULKAN_HPP_NAMESPACE::RenderPassBeginInfo56025     bool operator!=( RenderPassBeginInfo const& rhs ) const
56026     {
56027       return !operator==( rhs );
56028     }
56029 
56030   private:
56031     using layout::RenderPassBeginInfo::sType;
56032   };
56033   static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
56034   static_assert( std::is_standard_layout<RenderPassBeginInfo>::value, "struct wrapper is not a standard layout!" );
56035 
56036   struct SubpassDescription
56037   {
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription56038     SubpassDescription( vk::SubpassDescriptionFlags flags_ = vk::SubpassDescriptionFlags(),
56039                         vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
56040                         uint32_t inputAttachmentCount_ = 0,
56041                         const vk::AttachmentReference* pInputAttachments_ = nullptr,
56042                         uint32_t colorAttachmentCount_ = 0,
56043                         const vk::AttachmentReference* pColorAttachments_ = nullptr,
56044                         const vk::AttachmentReference* pResolveAttachments_ = nullptr,
56045                         const vk::AttachmentReference* pDepthStencilAttachment_ = nullptr,
56046                         uint32_t preserveAttachmentCount_ = 0,
56047                         const uint32_t* pPreserveAttachments_ = nullptr )
56048         : flags( flags_ )
56049         , pipelineBindPoint( pipelineBindPoint_ )
56050         , inputAttachmentCount( inputAttachmentCount_ )
56051         , pInputAttachments( pInputAttachments_ )
56052         , colorAttachmentCount( colorAttachmentCount_ )
56053         , pColorAttachments( pColorAttachments_ )
56054         , pResolveAttachments( pResolveAttachments_ )
56055         , pDepthStencilAttachment( pDepthStencilAttachment_ )
56056         , preserveAttachmentCount( preserveAttachmentCount_ )
56057         , pPreserveAttachments( pPreserveAttachments_ )
56058     {}
56059 
SubpassDescriptionVULKAN_HPP_NAMESPACE::SubpassDescription56060     SubpassDescription( VkSubpassDescription const & rhs )
56061     {
56062       *reinterpret_cast<VkSubpassDescription*>(this) = rhs;
56063     }
56064 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription56065     SubpassDescription& operator=( VkSubpassDescription const & rhs )
56066     {
56067       *reinterpret_cast<VkSubpassDescription*>(this) = rhs;
56068       return *this;
56069     }
56070 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription56071     SubpassDescription & setFlags( vk::SubpassDescriptionFlags flags_ )
56072     {
56073       flags = flags_;
56074       return *this;
56075     }
56076 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription56077     SubpassDescription & setPipelineBindPoint( vk::PipelineBindPoint pipelineBindPoint_ )
56078     {
56079       pipelineBindPoint = pipelineBindPoint_;
56080       return *this;
56081     }
56082 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription56083     SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ )
56084     {
56085       inputAttachmentCount = inputAttachmentCount_;
56086       return *this;
56087     }
56088 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription56089     SubpassDescription & setPInputAttachments( const vk::AttachmentReference* pInputAttachments_ )
56090     {
56091       pInputAttachments = pInputAttachments_;
56092       return *this;
56093     }
56094 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription56095     SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ )
56096     {
56097       colorAttachmentCount = colorAttachmentCount_;
56098       return *this;
56099     }
56100 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription56101     SubpassDescription & setPColorAttachments( const vk::AttachmentReference* pColorAttachments_ )
56102     {
56103       pColorAttachments = pColorAttachments_;
56104       return *this;
56105     }
56106 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription56107     SubpassDescription & setPResolveAttachments( const vk::AttachmentReference* pResolveAttachments_ )
56108     {
56109       pResolveAttachments = pResolveAttachments_;
56110       return *this;
56111     }
56112 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription56113     SubpassDescription & setPDepthStencilAttachment( const vk::AttachmentReference* pDepthStencilAttachment_ )
56114     {
56115       pDepthStencilAttachment = pDepthStencilAttachment_;
56116       return *this;
56117     }
56118 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription56119     SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ )
56120     {
56121       preserveAttachmentCount = preserveAttachmentCount_;
56122       return *this;
56123     }
56124 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription56125     SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ )
56126     {
56127       pPreserveAttachments = pPreserveAttachments_;
56128       return *this;
56129     }
56130 
operator VkSubpassDescription const&VULKAN_HPP_NAMESPACE::SubpassDescription56131     operator VkSubpassDescription const&() const
56132     {
56133       return *reinterpret_cast<const VkSubpassDescription*>( this );
56134     }
56135 
operator VkSubpassDescription&VULKAN_HPP_NAMESPACE::SubpassDescription56136     operator VkSubpassDescription &()
56137     {
56138       return *reinterpret_cast<VkSubpassDescription*>( this );
56139     }
56140 
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription56141     bool operator==( SubpassDescription const& rhs ) const
56142     {
56143       return ( flags == rhs.flags )
56144           && ( pipelineBindPoint == rhs.pipelineBindPoint )
56145           && ( inputAttachmentCount == rhs.inputAttachmentCount )
56146           && ( pInputAttachments == rhs.pInputAttachments )
56147           && ( colorAttachmentCount == rhs.colorAttachmentCount )
56148           && ( pColorAttachments == rhs.pColorAttachments )
56149           && ( pResolveAttachments == rhs.pResolveAttachments )
56150           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
56151           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
56152           && ( pPreserveAttachments == rhs.pPreserveAttachments );
56153     }
56154 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription56155     bool operator!=( SubpassDescription const& rhs ) const
56156     {
56157       return !operator==( rhs );
56158     }
56159 
56160   public:
56161     vk::SubpassDescriptionFlags flags;
56162     vk::PipelineBindPoint pipelineBindPoint;
56163     uint32_t inputAttachmentCount;
56164     const vk::AttachmentReference* pInputAttachments;
56165     uint32_t colorAttachmentCount;
56166     const vk::AttachmentReference* pColorAttachments;
56167     const vk::AttachmentReference* pResolveAttachments;
56168     const vk::AttachmentReference* pDepthStencilAttachment;
56169     uint32_t preserveAttachmentCount;
56170     const uint32_t* pPreserveAttachments;
56171   };
56172   static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
56173   static_assert( std::is_standard_layout<SubpassDescription>::value, "struct wrapper is not a standard layout!" );
56174 
56175   struct SubpassDependency
56176   {
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency56177     SubpassDependency( uint32_t srcSubpass_ = 0,
56178                        uint32_t dstSubpass_ = 0,
56179                        vk::PipelineStageFlags srcStageMask_ = vk::PipelineStageFlags(),
56180                        vk::PipelineStageFlags dstStageMask_ = vk::PipelineStageFlags(),
56181                        vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
56182                        vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
56183                        vk::DependencyFlags dependencyFlags_ = vk::DependencyFlags() )
56184         : srcSubpass( srcSubpass_ )
56185         , dstSubpass( dstSubpass_ )
56186         , srcStageMask( srcStageMask_ )
56187         , dstStageMask( dstStageMask_ )
56188         , srcAccessMask( srcAccessMask_ )
56189         , dstAccessMask( dstAccessMask_ )
56190         , dependencyFlags( dependencyFlags_ )
56191     {}
56192 
SubpassDependencyVULKAN_HPP_NAMESPACE::SubpassDependency56193     SubpassDependency( VkSubpassDependency const & rhs )
56194     {
56195       *reinterpret_cast<VkSubpassDependency*>(this) = rhs;
56196     }
56197 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency56198     SubpassDependency& operator=( VkSubpassDependency const & rhs )
56199     {
56200       *reinterpret_cast<VkSubpassDependency*>(this) = rhs;
56201       return *this;
56202     }
56203 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency56204     SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ )
56205     {
56206       srcSubpass = srcSubpass_;
56207       return *this;
56208     }
56209 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency56210     SubpassDependency & setDstSubpass( uint32_t dstSubpass_ )
56211     {
56212       dstSubpass = dstSubpass_;
56213       return *this;
56214     }
56215 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency56216     SubpassDependency & setSrcStageMask( vk::PipelineStageFlags srcStageMask_ )
56217     {
56218       srcStageMask = srcStageMask_;
56219       return *this;
56220     }
56221 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency56222     SubpassDependency & setDstStageMask( vk::PipelineStageFlags dstStageMask_ )
56223     {
56224       dstStageMask = dstStageMask_;
56225       return *this;
56226     }
56227 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency56228     SubpassDependency & setSrcAccessMask( vk::AccessFlags srcAccessMask_ )
56229     {
56230       srcAccessMask = srcAccessMask_;
56231       return *this;
56232     }
56233 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency56234     SubpassDependency & setDstAccessMask( vk::AccessFlags dstAccessMask_ )
56235     {
56236       dstAccessMask = dstAccessMask_;
56237       return *this;
56238     }
56239 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency56240     SubpassDependency & setDependencyFlags( vk::DependencyFlags dependencyFlags_ )
56241     {
56242       dependencyFlags = dependencyFlags_;
56243       return *this;
56244     }
56245 
operator VkSubpassDependency const&VULKAN_HPP_NAMESPACE::SubpassDependency56246     operator VkSubpassDependency const&() const
56247     {
56248       return *reinterpret_cast<const VkSubpassDependency*>( this );
56249     }
56250 
operator VkSubpassDependency&VULKAN_HPP_NAMESPACE::SubpassDependency56251     operator VkSubpassDependency &()
56252     {
56253       return *reinterpret_cast<VkSubpassDependency*>( this );
56254     }
56255 
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency56256     bool operator==( SubpassDependency const& rhs ) const
56257     {
56258       return ( srcSubpass == rhs.srcSubpass )
56259           && ( dstSubpass == rhs.dstSubpass )
56260           && ( srcStageMask == rhs.srcStageMask )
56261           && ( dstStageMask == rhs.dstStageMask )
56262           && ( srcAccessMask == rhs.srcAccessMask )
56263           && ( dstAccessMask == rhs.dstAccessMask )
56264           && ( dependencyFlags == rhs.dependencyFlags );
56265     }
56266 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency56267     bool operator!=( SubpassDependency const& rhs ) const
56268     {
56269       return !operator==( rhs );
56270     }
56271 
56272   public:
56273     uint32_t srcSubpass;
56274     uint32_t dstSubpass;
56275     vk::PipelineStageFlags srcStageMask;
56276     vk::PipelineStageFlags dstStageMask;
56277     vk::AccessFlags srcAccessMask;
56278     vk::AccessFlags dstAccessMask;
56279     vk::DependencyFlags dependencyFlags;
56280   };
56281   static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
56282   static_assert( std::is_standard_layout<SubpassDependency>::value, "struct wrapper is not a standard layout!" );
56283 
56284   namespace layout
56285   {
56286     struct RenderPassCreateInfo
56287     {
56288     protected:
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo56289       RenderPassCreateInfo( vk::RenderPassCreateFlags flags_ = vk::RenderPassCreateFlags(),
56290                             uint32_t attachmentCount_ = 0,
56291                             const vk::AttachmentDescription* pAttachments_ = nullptr,
56292                             uint32_t subpassCount_ = 0,
56293                             const vk::SubpassDescription* pSubpasses_ = nullptr,
56294                             uint32_t dependencyCount_ = 0,
56295                             const vk::SubpassDependency* pDependencies_ = nullptr )
56296         : flags( flags_ )
56297         , attachmentCount( attachmentCount_ )
56298         , pAttachments( pAttachments_ )
56299         , subpassCount( subpassCount_ )
56300         , pSubpasses( pSubpasses_ )
56301         , dependencyCount( dependencyCount_ )
56302         , pDependencies( pDependencies_ )
56303       {}
56304 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo56305       RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs )
56306       {
56307         *reinterpret_cast<VkRenderPassCreateInfo*>(this) = rhs;
56308       }
56309 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo56310       RenderPassCreateInfo& operator=( VkRenderPassCreateInfo const & rhs )
56311       {
56312         *reinterpret_cast<VkRenderPassCreateInfo*>(this) = rhs;
56313         return *this;
56314       }
56315 
56316     public:
56317       vk::StructureType sType = StructureType::eRenderPassCreateInfo;
56318       const void* pNext = nullptr;
56319       vk::RenderPassCreateFlags flags;
56320       uint32_t attachmentCount;
56321       const vk::AttachmentDescription* pAttachments;
56322       uint32_t subpassCount;
56323       const vk::SubpassDescription* pSubpasses;
56324       uint32_t dependencyCount;
56325       const vk::SubpassDependency* pDependencies;
56326     };
56327     static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "layout struct and wrapper have different size!" );
56328   }
56329 
56330   struct RenderPassCreateInfo : public layout::RenderPassCreateInfo
56331   {
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56332     RenderPassCreateInfo( vk::RenderPassCreateFlags flags_ = vk::RenderPassCreateFlags(),
56333                           uint32_t attachmentCount_ = 0,
56334                           const vk::AttachmentDescription* pAttachments_ = nullptr,
56335                           uint32_t subpassCount_ = 0,
56336                           const vk::SubpassDescription* pSubpasses_ = nullptr,
56337                           uint32_t dependencyCount_ = 0,
56338                           const vk::SubpassDependency* pDependencies_ = nullptr )
56339       : layout::RenderPassCreateInfo( flags_, attachmentCount_, pAttachments_, subpassCount_, pSubpasses_, dependencyCount_, pDependencies_ )
56340     {}
56341 
RenderPassCreateInfoVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56342     RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs )
56343       : layout::RenderPassCreateInfo( rhs )
56344     {}
56345 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo56346     RenderPassCreateInfo& operator=( VkRenderPassCreateInfo const & rhs )
56347     {
56348       *reinterpret_cast<VkRenderPassCreateInfo*>(this) = rhs;
56349       return *this;
56350     }
56351 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56352     RenderPassCreateInfo & setPNext( const void* pNext_ )
56353     {
56354       pNext = pNext_;
56355       return *this;
56356     }
56357 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56358     RenderPassCreateInfo & setFlags( vk::RenderPassCreateFlags flags_ )
56359     {
56360       flags = flags_;
56361       return *this;
56362     }
56363 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56364     RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
56365     {
56366       attachmentCount = attachmentCount_;
56367       return *this;
56368     }
56369 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56370     RenderPassCreateInfo & setPAttachments( const vk::AttachmentDescription* pAttachments_ )
56371     {
56372       pAttachments = pAttachments_;
56373       return *this;
56374     }
56375 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56376     RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ )
56377     {
56378       subpassCount = subpassCount_;
56379       return *this;
56380     }
56381 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56382     RenderPassCreateInfo & setPSubpasses( const vk::SubpassDescription* pSubpasses_ )
56383     {
56384       pSubpasses = pSubpasses_;
56385       return *this;
56386     }
56387 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56388     RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ )
56389     {
56390       dependencyCount = dependencyCount_;
56391       return *this;
56392     }
56393 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo56394     RenderPassCreateInfo & setPDependencies( const vk::SubpassDependency* pDependencies_ )
56395     {
56396       pDependencies = pDependencies_;
56397       return *this;
56398     }
56399 
operator VkRenderPassCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo56400     operator VkRenderPassCreateInfo const&() const
56401     {
56402       return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
56403     }
56404 
operator VkRenderPassCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo56405     operator VkRenderPassCreateInfo &()
56406     {
56407       return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
56408     }
56409 
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo56410     bool operator==( RenderPassCreateInfo const& rhs ) const
56411     {
56412       return ( sType == rhs.sType )
56413           && ( pNext == rhs.pNext )
56414           && ( flags == rhs.flags )
56415           && ( attachmentCount == rhs.attachmentCount )
56416           && ( pAttachments == rhs.pAttachments )
56417           && ( subpassCount == rhs.subpassCount )
56418           && ( pSubpasses == rhs.pSubpasses )
56419           && ( dependencyCount == rhs.dependencyCount )
56420           && ( pDependencies == rhs.pDependencies );
56421     }
56422 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo56423     bool operator!=( RenderPassCreateInfo const& rhs ) const
56424     {
56425       return !operator==( rhs );
56426     }
56427 
56428   private:
56429     using layout::RenderPassCreateInfo::sType;
56430   };
56431   static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
56432   static_assert( std::is_standard_layout<RenderPassCreateInfo>::value, "struct wrapper is not a standard layout!" );
56433 
56434   namespace layout
56435   {
56436     struct SubpassDescription2KHR
56437     {
56438     protected:
SubpassDescription2KHRVULKAN_HPP_NAMESPACE::layout::SubpassDescription2KHR56439       SubpassDescription2KHR( vk::SubpassDescriptionFlags flags_ = vk::SubpassDescriptionFlags(),
56440                               vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
56441                               uint32_t viewMask_ = 0,
56442                               uint32_t inputAttachmentCount_ = 0,
56443                               const vk::AttachmentReference2KHR* pInputAttachments_ = nullptr,
56444                               uint32_t colorAttachmentCount_ = 0,
56445                               const vk::AttachmentReference2KHR* pColorAttachments_ = nullptr,
56446                               const vk::AttachmentReference2KHR* pResolveAttachments_ = nullptr,
56447                               const vk::AttachmentReference2KHR* pDepthStencilAttachment_ = nullptr,
56448                               uint32_t preserveAttachmentCount_ = 0,
56449                               const uint32_t* pPreserveAttachments_ = nullptr )
56450         : flags( flags_ )
56451         , pipelineBindPoint( pipelineBindPoint_ )
56452         , viewMask( viewMask_ )
56453         , inputAttachmentCount( inputAttachmentCount_ )
56454         , pInputAttachments( pInputAttachments_ )
56455         , colorAttachmentCount( colorAttachmentCount_ )
56456         , pColorAttachments( pColorAttachments_ )
56457         , pResolveAttachments( pResolveAttachments_ )
56458         , pDepthStencilAttachment( pDepthStencilAttachment_ )
56459         , preserveAttachmentCount( preserveAttachmentCount_ )
56460         , pPreserveAttachments( pPreserveAttachments_ )
56461       {}
56462 
SubpassDescription2KHRVULKAN_HPP_NAMESPACE::layout::SubpassDescription2KHR56463       SubpassDescription2KHR( VkSubpassDescription2KHR const & rhs )
56464       {
56465         *reinterpret_cast<VkSubpassDescription2KHR*>(this) = rhs;
56466       }
56467 
operator =VULKAN_HPP_NAMESPACE::layout::SubpassDescription2KHR56468       SubpassDescription2KHR& operator=( VkSubpassDescription2KHR const & rhs )
56469       {
56470         *reinterpret_cast<VkSubpassDescription2KHR*>(this) = rhs;
56471         return *this;
56472       }
56473 
56474     public:
56475       vk::StructureType sType = StructureType::eSubpassDescription2KHR;
56476       const void* pNext = nullptr;
56477       vk::SubpassDescriptionFlags flags;
56478       vk::PipelineBindPoint pipelineBindPoint;
56479       uint32_t viewMask;
56480       uint32_t inputAttachmentCount;
56481       const vk::AttachmentReference2KHR* pInputAttachments;
56482       uint32_t colorAttachmentCount;
56483       const vk::AttachmentReference2KHR* pColorAttachments;
56484       const vk::AttachmentReference2KHR* pResolveAttachments;
56485       const vk::AttachmentReference2KHR* pDepthStencilAttachment;
56486       uint32_t preserveAttachmentCount;
56487       const uint32_t* pPreserveAttachments;
56488     };
56489     static_assert( sizeof( SubpassDescription2KHR ) == sizeof( VkSubpassDescription2KHR ), "layout struct and wrapper have different size!" );
56490   }
56491 
56492   struct SubpassDescription2KHR : public layout::SubpassDescription2KHR
56493   {
SubpassDescription2KHRVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56494     SubpassDescription2KHR( vk::SubpassDescriptionFlags flags_ = vk::SubpassDescriptionFlags(),
56495                             vk::PipelineBindPoint pipelineBindPoint_ = vk::PipelineBindPoint::eGraphics,
56496                             uint32_t viewMask_ = 0,
56497                             uint32_t inputAttachmentCount_ = 0,
56498                             const vk::AttachmentReference2KHR* pInputAttachments_ = nullptr,
56499                             uint32_t colorAttachmentCount_ = 0,
56500                             const vk::AttachmentReference2KHR* pColorAttachments_ = nullptr,
56501                             const vk::AttachmentReference2KHR* pResolveAttachments_ = nullptr,
56502                             const vk::AttachmentReference2KHR* pDepthStencilAttachment_ = nullptr,
56503                             uint32_t preserveAttachmentCount_ = 0,
56504                             const uint32_t* pPreserveAttachments_ = nullptr )
56505       : layout::SubpassDescription2KHR( flags_, pipelineBindPoint_, viewMask_, inputAttachmentCount_, pInputAttachments_, colorAttachmentCount_, pColorAttachments_, pResolveAttachments_, pDepthStencilAttachment_, preserveAttachmentCount_, pPreserveAttachments_ )
56506     {}
56507 
SubpassDescription2KHRVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56508     SubpassDescription2KHR( VkSubpassDescription2KHR const & rhs )
56509       : layout::SubpassDescription2KHR( rhs )
56510     {}
56511 
operator =VULKAN_HPP_NAMESPACE::SubpassDescription2KHR56512     SubpassDescription2KHR& operator=( VkSubpassDescription2KHR const & rhs )
56513     {
56514       *reinterpret_cast<VkSubpassDescription2KHR*>(this) = rhs;
56515       return *this;
56516     }
56517 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56518     SubpassDescription2KHR & setPNext( const void* pNext_ )
56519     {
56520       pNext = pNext_;
56521       return *this;
56522     }
56523 
setFlagsVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56524     SubpassDescription2KHR & setFlags( vk::SubpassDescriptionFlags flags_ )
56525     {
56526       flags = flags_;
56527       return *this;
56528     }
56529 
setPipelineBindPointVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56530     SubpassDescription2KHR & setPipelineBindPoint( vk::PipelineBindPoint pipelineBindPoint_ )
56531     {
56532       pipelineBindPoint = pipelineBindPoint_;
56533       return *this;
56534     }
56535 
setViewMaskVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56536     SubpassDescription2KHR & setViewMask( uint32_t viewMask_ )
56537     {
56538       viewMask = viewMask_;
56539       return *this;
56540     }
56541 
setInputAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56542     SubpassDescription2KHR & setInputAttachmentCount( uint32_t inputAttachmentCount_ )
56543     {
56544       inputAttachmentCount = inputAttachmentCount_;
56545       return *this;
56546     }
56547 
setPInputAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56548     SubpassDescription2KHR & setPInputAttachments( const vk::AttachmentReference2KHR* pInputAttachments_ )
56549     {
56550       pInputAttachments = pInputAttachments_;
56551       return *this;
56552     }
56553 
setColorAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56554     SubpassDescription2KHR & setColorAttachmentCount( uint32_t colorAttachmentCount_ )
56555     {
56556       colorAttachmentCount = colorAttachmentCount_;
56557       return *this;
56558     }
56559 
setPColorAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56560     SubpassDescription2KHR & setPColorAttachments( const vk::AttachmentReference2KHR* pColorAttachments_ )
56561     {
56562       pColorAttachments = pColorAttachments_;
56563       return *this;
56564     }
56565 
setPResolveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56566     SubpassDescription2KHR & setPResolveAttachments( const vk::AttachmentReference2KHR* pResolveAttachments_ )
56567     {
56568       pResolveAttachments = pResolveAttachments_;
56569       return *this;
56570     }
56571 
setPDepthStencilAttachmentVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56572     SubpassDescription2KHR & setPDepthStencilAttachment( const vk::AttachmentReference2KHR* pDepthStencilAttachment_ )
56573     {
56574       pDepthStencilAttachment = pDepthStencilAttachment_;
56575       return *this;
56576     }
56577 
setPreserveAttachmentCountVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56578     SubpassDescription2KHR & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ )
56579     {
56580       preserveAttachmentCount = preserveAttachmentCount_;
56581       return *this;
56582     }
56583 
setPPreserveAttachmentsVULKAN_HPP_NAMESPACE::SubpassDescription2KHR56584     SubpassDescription2KHR & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ )
56585     {
56586       pPreserveAttachments = pPreserveAttachments_;
56587       return *this;
56588     }
56589 
operator VkSubpassDescription2KHR const&VULKAN_HPP_NAMESPACE::SubpassDescription2KHR56590     operator VkSubpassDescription2KHR const&() const
56591     {
56592       return *reinterpret_cast<const VkSubpassDescription2KHR*>( this );
56593     }
56594 
operator VkSubpassDescription2KHR&VULKAN_HPP_NAMESPACE::SubpassDescription2KHR56595     operator VkSubpassDescription2KHR &()
56596     {
56597       return *reinterpret_cast<VkSubpassDescription2KHR*>( this );
56598     }
56599 
operator ==VULKAN_HPP_NAMESPACE::SubpassDescription2KHR56600     bool operator==( SubpassDescription2KHR const& rhs ) const
56601     {
56602       return ( sType == rhs.sType )
56603           && ( pNext == rhs.pNext )
56604           && ( flags == rhs.flags )
56605           && ( pipelineBindPoint == rhs.pipelineBindPoint )
56606           && ( viewMask == rhs.viewMask )
56607           && ( inputAttachmentCount == rhs.inputAttachmentCount )
56608           && ( pInputAttachments == rhs.pInputAttachments )
56609           && ( colorAttachmentCount == rhs.colorAttachmentCount )
56610           && ( pColorAttachments == rhs.pColorAttachments )
56611           && ( pResolveAttachments == rhs.pResolveAttachments )
56612           && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
56613           && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
56614           && ( pPreserveAttachments == rhs.pPreserveAttachments );
56615     }
56616 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescription2KHR56617     bool operator!=( SubpassDescription2KHR const& rhs ) const
56618     {
56619       return !operator==( rhs );
56620     }
56621 
56622   private:
56623     using layout::SubpassDescription2KHR::sType;
56624   };
56625   static_assert( sizeof( SubpassDescription2KHR ) == sizeof( VkSubpassDescription2KHR ), "struct and wrapper have different size!" );
56626   static_assert( std::is_standard_layout<SubpassDescription2KHR>::value, "struct wrapper is not a standard layout!" );
56627 
56628   namespace layout
56629   {
56630     struct SubpassDependency2KHR
56631     {
56632     protected:
SubpassDependency2KHRVULKAN_HPP_NAMESPACE::layout::SubpassDependency2KHR56633       SubpassDependency2KHR( uint32_t srcSubpass_ = 0,
56634                              uint32_t dstSubpass_ = 0,
56635                              vk::PipelineStageFlags srcStageMask_ = vk::PipelineStageFlags(),
56636                              vk::PipelineStageFlags dstStageMask_ = vk::PipelineStageFlags(),
56637                              vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
56638                              vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
56639                              vk::DependencyFlags dependencyFlags_ = vk::DependencyFlags(),
56640                              int32_t viewOffset_ = 0 )
56641         : srcSubpass( srcSubpass_ )
56642         , dstSubpass( dstSubpass_ )
56643         , srcStageMask( srcStageMask_ )
56644         , dstStageMask( dstStageMask_ )
56645         , srcAccessMask( srcAccessMask_ )
56646         , dstAccessMask( dstAccessMask_ )
56647         , dependencyFlags( dependencyFlags_ )
56648         , viewOffset( viewOffset_ )
56649       {}
56650 
SubpassDependency2KHRVULKAN_HPP_NAMESPACE::layout::SubpassDependency2KHR56651       SubpassDependency2KHR( VkSubpassDependency2KHR const & rhs )
56652       {
56653         *reinterpret_cast<VkSubpassDependency2KHR*>(this) = rhs;
56654       }
56655 
operator =VULKAN_HPP_NAMESPACE::layout::SubpassDependency2KHR56656       SubpassDependency2KHR& operator=( VkSubpassDependency2KHR const & rhs )
56657       {
56658         *reinterpret_cast<VkSubpassDependency2KHR*>(this) = rhs;
56659         return *this;
56660       }
56661 
56662     public:
56663       vk::StructureType sType = StructureType::eSubpassDependency2KHR;
56664       const void* pNext = nullptr;
56665       uint32_t srcSubpass;
56666       uint32_t dstSubpass;
56667       vk::PipelineStageFlags srcStageMask;
56668       vk::PipelineStageFlags dstStageMask;
56669       vk::AccessFlags srcAccessMask;
56670       vk::AccessFlags dstAccessMask;
56671       vk::DependencyFlags dependencyFlags;
56672       int32_t viewOffset;
56673     };
56674     static_assert( sizeof( SubpassDependency2KHR ) == sizeof( VkSubpassDependency2KHR ), "layout struct and wrapper have different size!" );
56675   }
56676 
56677   struct SubpassDependency2KHR : public layout::SubpassDependency2KHR
56678   {
SubpassDependency2KHRVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56679     SubpassDependency2KHR( uint32_t srcSubpass_ = 0,
56680                            uint32_t dstSubpass_ = 0,
56681                            vk::PipelineStageFlags srcStageMask_ = vk::PipelineStageFlags(),
56682                            vk::PipelineStageFlags dstStageMask_ = vk::PipelineStageFlags(),
56683                            vk::AccessFlags srcAccessMask_ = vk::AccessFlags(),
56684                            vk::AccessFlags dstAccessMask_ = vk::AccessFlags(),
56685                            vk::DependencyFlags dependencyFlags_ = vk::DependencyFlags(),
56686                            int32_t viewOffset_ = 0 )
56687       : layout::SubpassDependency2KHR( srcSubpass_, dstSubpass_, srcStageMask_, dstStageMask_, srcAccessMask_, dstAccessMask_, dependencyFlags_, viewOffset_ )
56688     {}
56689 
SubpassDependency2KHRVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56690     SubpassDependency2KHR( VkSubpassDependency2KHR const & rhs )
56691       : layout::SubpassDependency2KHR( rhs )
56692     {}
56693 
operator =VULKAN_HPP_NAMESPACE::SubpassDependency2KHR56694     SubpassDependency2KHR& operator=( VkSubpassDependency2KHR const & rhs )
56695     {
56696       *reinterpret_cast<VkSubpassDependency2KHR*>(this) = rhs;
56697       return *this;
56698     }
56699 
setPNextVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56700     SubpassDependency2KHR & setPNext( const void* pNext_ )
56701     {
56702       pNext = pNext_;
56703       return *this;
56704     }
56705 
setSrcSubpassVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56706     SubpassDependency2KHR & setSrcSubpass( uint32_t srcSubpass_ )
56707     {
56708       srcSubpass = srcSubpass_;
56709       return *this;
56710     }
56711 
setDstSubpassVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56712     SubpassDependency2KHR & setDstSubpass( uint32_t dstSubpass_ )
56713     {
56714       dstSubpass = dstSubpass_;
56715       return *this;
56716     }
56717 
setSrcStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56718     SubpassDependency2KHR & setSrcStageMask( vk::PipelineStageFlags srcStageMask_ )
56719     {
56720       srcStageMask = srcStageMask_;
56721       return *this;
56722     }
56723 
setDstStageMaskVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56724     SubpassDependency2KHR & setDstStageMask( vk::PipelineStageFlags dstStageMask_ )
56725     {
56726       dstStageMask = dstStageMask_;
56727       return *this;
56728     }
56729 
setSrcAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56730     SubpassDependency2KHR & setSrcAccessMask( vk::AccessFlags srcAccessMask_ )
56731     {
56732       srcAccessMask = srcAccessMask_;
56733       return *this;
56734     }
56735 
setDstAccessMaskVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56736     SubpassDependency2KHR & setDstAccessMask( vk::AccessFlags dstAccessMask_ )
56737     {
56738       dstAccessMask = dstAccessMask_;
56739       return *this;
56740     }
56741 
setDependencyFlagsVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56742     SubpassDependency2KHR & setDependencyFlags( vk::DependencyFlags dependencyFlags_ )
56743     {
56744       dependencyFlags = dependencyFlags_;
56745       return *this;
56746     }
56747 
setViewOffsetVULKAN_HPP_NAMESPACE::SubpassDependency2KHR56748     SubpassDependency2KHR & setViewOffset( int32_t viewOffset_ )
56749     {
56750       viewOffset = viewOffset_;
56751       return *this;
56752     }
56753 
operator VkSubpassDependency2KHR const&VULKAN_HPP_NAMESPACE::SubpassDependency2KHR56754     operator VkSubpassDependency2KHR const&() const
56755     {
56756       return *reinterpret_cast<const VkSubpassDependency2KHR*>( this );
56757     }
56758 
operator VkSubpassDependency2KHR&VULKAN_HPP_NAMESPACE::SubpassDependency2KHR56759     operator VkSubpassDependency2KHR &()
56760     {
56761       return *reinterpret_cast<VkSubpassDependency2KHR*>( this );
56762     }
56763 
operator ==VULKAN_HPP_NAMESPACE::SubpassDependency2KHR56764     bool operator==( SubpassDependency2KHR const& rhs ) const
56765     {
56766       return ( sType == rhs.sType )
56767           && ( pNext == rhs.pNext )
56768           && ( srcSubpass == rhs.srcSubpass )
56769           && ( dstSubpass == rhs.dstSubpass )
56770           && ( srcStageMask == rhs.srcStageMask )
56771           && ( dstStageMask == rhs.dstStageMask )
56772           && ( srcAccessMask == rhs.srcAccessMask )
56773           && ( dstAccessMask == rhs.dstAccessMask )
56774           && ( dependencyFlags == rhs.dependencyFlags )
56775           && ( viewOffset == rhs.viewOffset );
56776     }
56777 
operator !=VULKAN_HPP_NAMESPACE::SubpassDependency2KHR56778     bool operator!=( SubpassDependency2KHR const& rhs ) const
56779     {
56780       return !operator==( rhs );
56781     }
56782 
56783   private:
56784     using layout::SubpassDependency2KHR::sType;
56785   };
56786   static_assert( sizeof( SubpassDependency2KHR ) == sizeof( VkSubpassDependency2KHR ), "struct and wrapper have different size!" );
56787   static_assert( std::is_standard_layout<SubpassDependency2KHR>::value, "struct wrapper is not a standard layout!" );
56788 
56789   namespace layout
56790   {
56791     struct RenderPassCreateInfo2KHR
56792     {
56793     protected:
RenderPassCreateInfo2KHRVULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo2KHR56794       RenderPassCreateInfo2KHR( vk::RenderPassCreateFlags flags_ = vk::RenderPassCreateFlags(),
56795                                 uint32_t attachmentCount_ = 0,
56796                                 const vk::AttachmentDescription2KHR* pAttachments_ = nullptr,
56797                                 uint32_t subpassCount_ = 0,
56798                                 const vk::SubpassDescription2KHR* pSubpasses_ = nullptr,
56799                                 uint32_t dependencyCount_ = 0,
56800                                 const vk::SubpassDependency2KHR* pDependencies_ = nullptr,
56801                                 uint32_t correlatedViewMaskCount_ = 0,
56802                                 const uint32_t* pCorrelatedViewMasks_ = nullptr )
56803         : flags( flags_ )
56804         , attachmentCount( attachmentCount_ )
56805         , pAttachments( pAttachments_ )
56806         , subpassCount( subpassCount_ )
56807         , pSubpasses( pSubpasses_ )
56808         , dependencyCount( dependencyCount_ )
56809         , pDependencies( pDependencies_ )
56810         , correlatedViewMaskCount( correlatedViewMaskCount_ )
56811         , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
56812       {}
56813 
RenderPassCreateInfo2KHRVULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo2KHR56814       RenderPassCreateInfo2KHR( VkRenderPassCreateInfo2KHR const & rhs )
56815       {
56816         *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this) = rhs;
56817       }
56818 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassCreateInfo2KHR56819       RenderPassCreateInfo2KHR& operator=( VkRenderPassCreateInfo2KHR const & rhs )
56820       {
56821         *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this) = rhs;
56822         return *this;
56823       }
56824 
56825     public:
56826       vk::StructureType sType = StructureType::eRenderPassCreateInfo2KHR;
56827       const void* pNext = nullptr;
56828       vk::RenderPassCreateFlags flags;
56829       uint32_t attachmentCount;
56830       const vk::AttachmentDescription2KHR* pAttachments;
56831       uint32_t subpassCount;
56832       const vk::SubpassDescription2KHR* pSubpasses;
56833       uint32_t dependencyCount;
56834       const vk::SubpassDependency2KHR* pDependencies;
56835       uint32_t correlatedViewMaskCount;
56836       const uint32_t* pCorrelatedViewMasks;
56837     };
56838     static_assert( sizeof( RenderPassCreateInfo2KHR ) == sizeof( VkRenderPassCreateInfo2KHR ), "layout struct and wrapper have different size!" );
56839   }
56840 
56841   struct RenderPassCreateInfo2KHR : public layout::RenderPassCreateInfo2KHR
56842   {
RenderPassCreateInfo2KHRVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56843     RenderPassCreateInfo2KHR( vk::RenderPassCreateFlags flags_ = vk::RenderPassCreateFlags(),
56844                               uint32_t attachmentCount_ = 0,
56845                               const vk::AttachmentDescription2KHR* pAttachments_ = nullptr,
56846                               uint32_t subpassCount_ = 0,
56847                               const vk::SubpassDescription2KHR* pSubpasses_ = nullptr,
56848                               uint32_t dependencyCount_ = 0,
56849                               const vk::SubpassDependency2KHR* pDependencies_ = nullptr,
56850                               uint32_t correlatedViewMaskCount_ = 0,
56851                               const uint32_t* pCorrelatedViewMasks_ = nullptr )
56852       : layout::RenderPassCreateInfo2KHR( flags_, attachmentCount_, pAttachments_, subpassCount_, pSubpasses_, dependencyCount_, pDependencies_, correlatedViewMaskCount_, pCorrelatedViewMasks_ )
56853     {}
56854 
RenderPassCreateInfo2KHRVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56855     RenderPassCreateInfo2KHR( VkRenderPassCreateInfo2KHR const & rhs )
56856       : layout::RenderPassCreateInfo2KHR( rhs )
56857     {}
56858 
operator =VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56859     RenderPassCreateInfo2KHR& operator=( VkRenderPassCreateInfo2KHR const & rhs )
56860     {
56861       *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this) = rhs;
56862       return *this;
56863     }
56864 
setPNextVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56865     RenderPassCreateInfo2KHR & setPNext( const void* pNext_ )
56866     {
56867       pNext = pNext_;
56868       return *this;
56869     }
56870 
setFlagsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56871     RenderPassCreateInfo2KHR & setFlags( vk::RenderPassCreateFlags flags_ )
56872     {
56873       flags = flags_;
56874       return *this;
56875     }
56876 
setAttachmentCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56877     RenderPassCreateInfo2KHR & setAttachmentCount( uint32_t attachmentCount_ )
56878     {
56879       attachmentCount = attachmentCount_;
56880       return *this;
56881     }
56882 
setPAttachmentsVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56883     RenderPassCreateInfo2KHR & setPAttachments( const vk::AttachmentDescription2KHR* pAttachments_ )
56884     {
56885       pAttachments = pAttachments_;
56886       return *this;
56887     }
56888 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56889     RenderPassCreateInfo2KHR & setSubpassCount( uint32_t subpassCount_ )
56890     {
56891       subpassCount = subpassCount_;
56892       return *this;
56893     }
56894 
setPSubpassesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56895     RenderPassCreateInfo2KHR & setPSubpasses( const vk::SubpassDescription2KHR* pSubpasses_ )
56896     {
56897       pSubpasses = pSubpasses_;
56898       return *this;
56899     }
56900 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56901     RenderPassCreateInfo2KHR & setDependencyCount( uint32_t dependencyCount_ )
56902     {
56903       dependencyCount = dependencyCount_;
56904       return *this;
56905     }
56906 
setPDependenciesVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56907     RenderPassCreateInfo2KHR & setPDependencies( const vk::SubpassDependency2KHR* pDependencies_ )
56908     {
56909       pDependencies = pDependencies_;
56910       return *this;
56911     }
56912 
setCorrelatedViewMaskCountVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56913     RenderPassCreateInfo2KHR & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ )
56914     {
56915       correlatedViewMaskCount = correlatedViewMaskCount_;
56916       return *this;
56917     }
56918 
setPCorrelatedViewMasksVULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56919     RenderPassCreateInfo2KHR & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ )
56920     {
56921       pCorrelatedViewMasks = pCorrelatedViewMasks_;
56922       return *this;
56923     }
56924 
operator VkRenderPassCreateInfo2KHR const&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56925     operator VkRenderPassCreateInfo2KHR const&() const
56926     {
56927       return *reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( this );
56928     }
56929 
operator VkRenderPassCreateInfo2KHR&VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56930     operator VkRenderPassCreateInfo2KHR &()
56931     {
56932       return *reinterpret_cast<VkRenderPassCreateInfo2KHR*>( this );
56933     }
56934 
operator ==VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56935     bool operator==( RenderPassCreateInfo2KHR const& rhs ) const
56936     {
56937       return ( sType == rhs.sType )
56938           && ( pNext == rhs.pNext )
56939           && ( flags == rhs.flags )
56940           && ( attachmentCount == rhs.attachmentCount )
56941           && ( pAttachments == rhs.pAttachments )
56942           && ( subpassCount == rhs.subpassCount )
56943           && ( pSubpasses == rhs.pSubpasses )
56944           && ( dependencyCount == rhs.dependencyCount )
56945           && ( pDependencies == rhs.pDependencies )
56946           && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
56947           && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
56948     }
56949 
operator !=VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2KHR56950     bool operator!=( RenderPassCreateInfo2KHR const& rhs ) const
56951     {
56952       return !operator==( rhs );
56953     }
56954 
56955   private:
56956     using layout::RenderPassCreateInfo2KHR::sType;
56957   };
56958   static_assert( sizeof( RenderPassCreateInfo2KHR ) == sizeof( VkRenderPassCreateInfo2KHR ), "struct and wrapper have different size!" );
56959   static_assert( std::is_standard_layout<RenderPassCreateInfo2KHR>::value, "struct wrapper is not a standard layout!" );
56960 
56961   namespace layout
56962   {
56963     struct RenderPassFragmentDensityMapCreateInfoEXT
56964     {
56965     protected:
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::RenderPassFragmentDensityMapCreateInfoEXT56966       RenderPassFragmentDensityMapCreateInfoEXT( vk::AttachmentReference fragmentDensityMapAttachment_ = vk::AttachmentReference() )
56967         : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
56968       {}
56969 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::RenderPassFragmentDensityMapCreateInfoEXT56970       RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
56971       {
56972         *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(this) = rhs;
56973       }
56974 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassFragmentDensityMapCreateInfoEXT56975       RenderPassFragmentDensityMapCreateInfoEXT& operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
56976       {
56977         *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(this) = rhs;
56978         return *this;
56979       }
56980 
56981     public:
56982       vk::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
56983       const void* pNext = nullptr;
56984       vk::AttachmentReference fragmentDensityMapAttachment;
56985     };
56986     static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "layout struct and wrapper have different size!" );
56987   }
56988 
56989   struct RenderPassFragmentDensityMapCreateInfoEXT : public layout::RenderPassFragmentDensityMapCreateInfoEXT
56990   {
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT56991     RenderPassFragmentDensityMapCreateInfoEXT( vk::AttachmentReference fragmentDensityMapAttachment_ = vk::AttachmentReference() )
56992       : layout::RenderPassFragmentDensityMapCreateInfoEXT( fragmentDensityMapAttachment_ )
56993     {}
56994 
RenderPassFragmentDensityMapCreateInfoEXTVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT56995     RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
56996       : layout::RenderPassFragmentDensityMapCreateInfoEXT( rhs )
56997     {}
56998 
operator =VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT56999     RenderPassFragmentDensityMapCreateInfoEXT& operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
57000     {
57001       *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(this) = rhs;
57002       return *this;
57003     }
57004 
setPNextVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57005     RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ )
57006     {
57007       pNext = pNext_;
57008       return *this;
57009     }
57010 
setFragmentDensityMapAttachmentVULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57011     RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( vk::AttachmentReference fragmentDensityMapAttachment_ )
57012     {
57013       fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
57014       return *this;
57015     }
57016 
operator VkRenderPassFragmentDensityMapCreateInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57017     operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const
57018     {
57019       return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
57020     }
57021 
operator VkRenderPassFragmentDensityMapCreateInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57022     operator VkRenderPassFragmentDensityMapCreateInfoEXT &()
57023     {
57024       return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
57025     }
57026 
operator ==VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57027     bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const
57028     {
57029       return ( sType == rhs.sType )
57030           && ( pNext == rhs.pNext )
57031           && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
57032     }
57033 
operator !=VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT57034     bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const
57035     {
57036       return !operator==( rhs );
57037     }
57038 
57039   private:
57040     using layout::RenderPassFragmentDensityMapCreateInfoEXT::sType;
57041   };
57042   static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
57043   static_assert( std::is_standard_layout<RenderPassFragmentDensityMapCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
57044 
57045   namespace layout
57046   {
57047     struct RenderPassInputAttachmentAspectCreateInfo
57048     {
57049     protected:
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassInputAttachmentAspectCreateInfo57050       RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = 0,
57051                                                  const vk::InputAttachmentAspectReference* pAspectReferences_ = nullptr )
57052         : aspectReferenceCount( aspectReferenceCount_ )
57053         , pAspectReferences( pAspectReferences_ )
57054       {}
57055 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassInputAttachmentAspectCreateInfo57056       RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
57057       {
57058         *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this) = rhs;
57059       }
57060 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassInputAttachmentAspectCreateInfo57061       RenderPassInputAttachmentAspectCreateInfo& operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
57062       {
57063         *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this) = rhs;
57064         return *this;
57065       }
57066 
57067     public:
57068       vk::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
57069       const void* pNext = nullptr;
57070       uint32_t aspectReferenceCount;
57071       const vk::InputAttachmentAspectReference* pAspectReferences;
57072     };
57073     static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "layout struct and wrapper have different size!" );
57074   }
57075 
57076   struct RenderPassInputAttachmentAspectCreateInfo : public layout::RenderPassInputAttachmentAspectCreateInfo
57077   {
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57078     RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = 0,
57079                                                const vk::InputAttachmentAspectReference* pAspectReferences_ = nullptr )
57080       : layout::RenderPassInputAttachmentAspectCreateInfo( aspectReferenceCount_, pAspectReferences_ )
57081     {}
57082 
RenderPassInputAttachmentAspectCreateInfoVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57083     RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
57084       : layout::RenderPassInputAttachmentAspectCreateInfo( rhs )
57085     {}
57086 
operator =VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57087     RenderPassInputAttachmentAspectCreateInfo& operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
57088     {
57089       *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this) = rhs;
57090       return *this;
57091     }
57092 
setPNextVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57093     RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ )
57094     {
57095       pNext = pNext_;
57096       return *this;
57097     }
57098 
setAspectReferenceCountVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57099     RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ )
57100     {
57101       aspectReferenceCount = aspectReferenceCount_;
57102       return *this;
57103     }
57104 
setPAspectReferencesVULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57105     RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const vk::InputAttachmentAspectReference* pAspectReferences_ )
57106     {
57107       pAspectReferences = pAspectReferences_;
57108       return *this;
57109     }
57110 
operator VkRenderPassInputAttachmentAspectCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57111     operator VkRenderPassInputAttachmentAspectCreateInfo const&() const
57112     {
57113       return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
57114     }
57115 
operator VkRenderPassInputAttachmentAspectCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57116     operator VkRenderPassInputAttachmentAspectCreateInfo &()
57117     {
57118       return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
57119     }
57120 
operator ==VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57121     bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const
57122     {
57123       return ( sType == rhs.sType )
57124           && ( pNext == rhs.pNext )
57125           && ( aspectReferenceCount == rhs.aspectReferenceCount )
57126           && ( pAspectReferences == rhs.pAspectReferences );
57127     }
57128 
operator !=VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo57129     bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const
57130     {
57131       return !operator==( rhs );
57132     }
57133 
57134   private:
57135     using layout::RenderPassInputAttachmentAspectCreateInfo::sType;
57136   };
57137   static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
57138   static_assert( std::is_standard_layout<RenderPassInputAttachmentAspectCreateInfo>::value, "struct wrapper is not a standard layout!" );
57139 
57140   namespace layout
57141   {
57142     struct RenderPassMultiviewCreateInfo
57143     {
57144     protected:
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassMultiviewCreateInfo57145       RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = 0,
57146                                      const uint32_t* pViewMasks_ = nullptr,
57147                                      uint32_t dependencyCount_ = 0,
57148                                      const int32_t* pViewOffsets_ = nullptr,
57149                                      uint32_t correlationMaskCount_ = 0,
57150                                      const uint32_t* pCorrelationMasks_ = nullptr )
57151         : subpassCount( subpassCount_ )
57152         , pViewMasks( pViewMasks_ )
57153         , dependencyCount( dependencyCount_ )
57154         , pViewOffsets( pViewOffsets_ )
57155         , correlationMaskCount( correlationMaskCount_ )
57156         , pCorrelationMasks( pCorrelationMasks_ )
57157       {}
57158 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::layout::RenderPassMultiviewCreateInfo57159       RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs )
57160       {
57161         *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this) = rhs;
57162       }
57163 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassMultiviewCreateInfo57164       RenderPassMultiviewCreateInfo& operator=( VkRenderPassMultiviewCreateInfo const & rhs )
57165       {
57166         *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this) = rhs;
57167         return *this;
57168       }
57169 
57170     public:
57171       vk::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
57172       const void* pNext = nullptr;
57173       uint32_t subpassCount;
57174       const uint32_t* pViewMasks;
57175       uint32_t dependencyCount;
57176       const int32_t* pViewOffsets;
57177       uint32_t correlationMaskCount;
57178       const uint32_t* pCorrelationMasks;
57179     };
57180     static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "layout struct and wrapper have different size!" );
57181   }
57182 
57183   struct RenderPassMultiviewCreateInfo : public layout::RenderPassMultiviewCreateInfo
57184   {
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57185     RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = 0,
57186                                    const uint32_t* pViewMasks_ = nullptr,
57187                                    uint32_t dependencyCount_ = 0,
57188                                    const int32_t* pViewOffsets_ = nullptr,
57189                                    uint32_t correlationMaskCount_ = 0,
57190                                    const uint32_t* pCorrelationMasks_ = nullptr )
57191       : layout::RenderPassMultiviewCreateInfo( subpassCount_, pViewMasks_, dependencyCount_, pViewOffsets_, correlationMaskCount_, pCorrelationMasks_ )
57192     {}
57193 
RenderPassMultiviewCreateInfoVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57194     RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs )
57195       : layout::RenderPassMultiviewCreateInfo( rhs )
57196     {}
57197 
operator =VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57198     RenderPassMultiviewCreateInfo& operator=( VkRenderPassMultiviewCreateInfo const & rhs )
57199     {
57200       *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this) = rhs;
57201       return *this;
57202     }
57203 
setPNextVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57204     RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ )
57205     {
57206       pNext = pNext_;
57207       return *this;
57208     }
57209 
setSubpassCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57210     RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ )
57211     {
57212       subpassCount = subpassCount_;
57213       return *this;
57214     }
57215 
setPViewMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57216     RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ )
57217     {
57218       pViewMasks = pViewMasks_;
57219       return *this;
57220     }
57221 
setDependencyCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57222     RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ )
57223     {
57224       dependencyCount = dependencyCount_;
57225       return *this;
57226     }
57227 
setPViewOffsetsVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57228     RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ )
57229     {
57230       pViewOffsets = pViewOffsets_;
57231       return *this;
57232     }
57233 
setCorrelationMaskCountVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57234     RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ )
57235     {
57236       correlationMaskCount = correlationMaskCount_;
57237       return *this;
57238     }
57239 
setPCorrelationMasksVULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57240     RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ )
57241     {
57242       pCorrelationMasks = pCorrelationMasks_;
57243       return *this;
57244     }
57245 
operator VkRenderPassMultiviewCreateInfo const&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57246     operator VkRenderPassMultiviewCreateInfo const&() const
57247     {
57248       return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
57249     }
57250 
operator VkRenderPassMultiviewCreateInfo&VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57251     operator VkRenderPassMultiviewCreateInfo &()
57252     {
57253       return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
57254     }
57255 
operator ==VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57256     bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const
57257     {
57258       return ( sType == rhs.sType )
57259           && ( pNext == rhs.pNext )
57260           && ( subpassCount == rhs.subpassCount )
57261           && ( pViewMasks == rhs.pViewMasks )
57262           && ( dependencyCount == rhs.dependencyCount )
57263           && ( pViewOffsets == rhs.pViewOffsets )
57264           && ( correlationMaskCount == rhs.correlationMaskCount )
57265           && ( pCorrelationMasks == rhs.pCorrelationMasks );
57266     }
57267 
operator !=VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo57268     bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const
57269     {
57270       return !operator==( rhs );
57271     }
57272 
57273   private:
57274     using layout::RenderPassMultiviewCreateInfo::sType;
57275   };
57276   static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
57277   static_assert( std::is_standard_layout<RenderPassMultiviewCreateInfo>::value, "struct wrapper is not a standard layout!" );
57278 
57279   struct SubpassSampleLocationsEXT
57280   {
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57281     SubpassSampleLocationsEXT( uint32_t subpassIndex_ = 0,
57282                                vk::SampleLocationsInfoEXT sampleLocationsInfo_ = vk::SampleLocationsInfoEXT() )
57283         : subpassIndex( subpassIndex_ )
57284         , sampleLocationsInfo( sampleLocationsInfo_ )
57285     {}
57286 
SubpassSampleLocationsEXTVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57287     SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs )
57288     {
57289       *reinterpret_cast<VkSubpassSampleLocationsEXT*>(this) = rhs;
57290     }
57291 
operator =VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57292     SubpassSampleLocationsEXT& operator=( VkSubpassSampleLocationsEXT const & rhs )
57293     {
57294       *reinterpret_cast<VkSubpassSampleLocationsEXT*>(this) = rhs;
57295       return *this;
57296     }
57297 
setSubpassIndexVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57298     SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ )
57299     {
57300       subpassIndex = subpassIndex_;
57301       return *this;
57302     }
57303 
setSampleLocationsInfoVULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57304     SubpassSampleLocationsEXT & setSampleLocationsInfo( vk::SampleLocationsInfoEXT sampleLocationsInfo_ )
57305     {
57306       sampleLocationsInfo = sampleLocationsInfo_;
57307       return *this;
57308     }
57309 
operator VkSubpassSampleLocationsEXT const&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57310     operator VkSubpassSampleLocationsEXT const&() const
57311     {
57312       return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
57313     }
57314 
operator VkSubpassSampleLocationsEXT&VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57315     operator VkSubpassSampleLocationsEXT &()
57316     {
57317       return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
57318     }
57319 
operator ==VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57320     bool operator==( SubpassSampleLocationsEXT const& rhs ) const
57321     {
57322       return ( subpassIndex == rhs.subpassIndex )
57323           && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
57324     }
57325 
operator !=VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT57326     bool operator!=( SubpassSampleLocationsEXT const& rhs ) const
57327     {
57328       return !operator==( rhs );
57329     }
57330 
57331   public:
57332     uint32_t subpassIndex;
57333     vk::SampleLocationsInfoEXT sampleLocationsInfo;
57334   };
57335   static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
57336   static_assert( std::is_standard_layout<SubpassSampleLocationsEXT>::value, "struct wrapper is not a standard layout!" );
57337 
57338   namespace layout
57339   {
57340     struct RenderPassSampleLocationsBeginInfoEXT
57341     {
57342     protected:
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::layout::RenderPassSampleLocationsBeginInfoEXT57343       RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = 0,
57344                                              const vk::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = nullptr,
57345                                              uint32_t postSubpassSampleLocationsCount_ = 0,
57346                                              const vk::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = nullptr )
57347         : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
57348         , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
57349         , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
57350         , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
57351       {}
57352 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::layout::RenderPassSampleLocationsBeginInfoEXT57353       RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
57354       {
57355         *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this) = rhs;
57356       }
57357 
operator =VULKAN_HPP_NAMESPACE::layout::RenderPassSampleLocationsBeginInfoEXT57358       RenderPassSampleLocationsBeginInfoEXT& operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
57359       {
57360         *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this) = rhs;
57361         return *this;
57362       }
57363 
57364     public:
57365       vk::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
57366       const void* pNext = nullptr;
57367       uint32_t attachmentInitialSampleLocationsCount;
57368       const vk::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
57369       uint32_t postSubpassSampleLocationsCount;
57370       const vk::SubpassSampleLocationsEXT* pPostSubpassSampleLocations;
57371     };
57372     static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "layout struct and wrapper have different size!" );
57373   }
57374 
57375   struct RenderPassSampleLocationsBeginInfoEXT : public layout::RenderPassSampleLocationsBeginInfoEXT
57376   {
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57377     RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = 0,
57378                                            const vk::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = nullptr,
57379                                            uint32_t postSubpassSampleLocationsCount_ = 0,
57380                                            const vk::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = nullptr )
57381       : layout::RenderPassSampleLocationsBeginInfoEXT( attachmentInitialSampleLocationsCount_, pAttachmentInitialSampleLocations_, postSubpassSampleLocationsCount_, pPostSubpassSampleLocations_ )
57382     {}
57383 
RenderPassSampleLocationsBeginInfoEXTVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57384     RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
57385       : layout::RenderPassSampleLocationsBeginInfoEXT( rhs )
57386     {}
57387 
operator =VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57388     RenderPassSampleLocationsBeginInfoEXT& operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
57389     {
57390       *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this) = rhs;
57391       return *this;
57392     }
57393 
setPNextVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57394     RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ )
57395     {
57396       pNext = pNext_;
57397       return *this;
57398     }
57399 
setAttachmentInitialSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57400     RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ )
57401     {
57402       attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
57403       return *this;
57404     }
57405 
setPAttachmentInitialSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57406     RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const vk::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ )
57407     {
57408       pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
57409       return *this;
57410     }
57411 
setPostSubpassSampleLocationsCountVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57412     RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ )
57413     {
57414       postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
57415       return *this;
57416     }
57417 
setPPostSubpassSampleLocationsVULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57418     RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const vk::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ )
57419     {
57420       pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
57421       return *this;
57422     }
57423 
operator VkRenderPassSampleLocationsBeginInfoEXT const&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57424     operator VkRenderPassSampleLocationsBeginInfoEXT const&() const
57425     {
57426       return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
57427     }
57428 
operator VkRenderPassSampleLocationsBeginInfoEXT&VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57429     operator VkRenderPassSampleLocationsBeginInfoEXT &()
57430     {
57431       return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
57432     }
57433 
operator ==VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57434     bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const
57435     {
57436       return ( sType == rhs.sType )
57437           && ( pNext == rhs.pNext )
57438           && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
57439           && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
57440           && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
57441           && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
57442     }
57443 
operator !=VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT57444     bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const
57445     {
57446       return !operator==( rhs );
57447     }
57448 
57449   private:
57450     using layout::RenderPassSampleLocationsBeginInfoEXT::sType;
57451   };
57452   static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
57453   static_assert( std::is_standard_layout<RenderPassSampleLocationsBeginInfoEXT>::value, "struct wrapper is not a standard layout!" );
57454 
57455   namespace layout
57456   {
57457     struct SamplerCreateInfo
57458     {
57459     protected:
SamplerCreateInfoVULKAN_HPP_NAMESPACE::layout::SamplerCreateInfo57460       SamplerCreateInfo( vk::SamplerCreateFlags flags_ = vk::SamplerCreateFlags(),
57461                          vk::Filter magFilter_ = vk::Filter::eNearest,
57462                          vk::Filter minFilter_ = vk::Filter::eNearest,
57463                          vk::SamplerMipmapMode mipmapMode_ = vk::SamplerMipmapMode::eNearest,
57464                          vk::SamplerAddressMode addressModeU_ = vk::SamplerAddressMode::eRepeat,
57465                          vk::SamplerAddressMode addressModeV_ = vk::SamplerAddressMode::eRepeat,
57466                          vk::SamplerAddressMode addressModeW_ = vk::SamplerAddressMode::eRepeat,
57467                          float mipLodBias_ = 0,
57468                          vk::Bool32 anisotropyEnable_ = 0,
57469                          float maxAnisotropy_ = 0,
57470                          vk::Bool32 compareEnable_ = 0,
57471                          vk::CompareOp compareOp_ = vk::CompareOp::eNever,
57472                          float minLod_ = 0,
57473                          float maxLod_ = 0,
57474                          vk::BorderColor borderColor_ = vk::BorderColor::eFloatTransparentBlack,
57475                          vk::Bool32 unnormalizedCoordinates_ = 0 )
57476         : flags( flags_ )
57477         , magFilter( magFilter_ )
57478         , minFilter( minFilter_ )
57479         , mipmapMode( mipmapMode_ )
57480         , addressModeU( addressModeU_ )
57481         , addressModeV( addressModeV_ )
57482         , addressModeW( addressModeW_ )
57483         , mipLodBias( mipLodBias_ )
57484         , anisotropyEnable( anisotropyEnable_ )
57485         , maxAnisotropy( maxAnisotropy_ )
57486         , compareEnable( compareEnable_ )
57487         , compareOp( compareOp_ )
57488         , minLod( minLod_ )
57489         , maxLod( maxLod_ )
57490         , borderColor( borderColor_ )
57491         , unnormalizedCoordinates( unnormalizedCoordinates_ )
57492       {}
57493 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::layout::SamplerCreateInfo57494       SamplerCreateInfo( VkSamplerCreateInfo const & rhs )
57495       {
57496         *reinterpret_cast<VkSamplerCreateInfo*>(this) = rhs;
57497       }
57498 
operator =VULKAN_HPP_NAMESPACE::layout::SamplerCreateInfo57499       SamplerCreateInfo& operator=( VkSamplerCreateInfo const & rhs )
57500       {
57501         *reinterpret_cast<VkSamplerCreateInfo*>(this) = rhs;
57502         return *this;
57503       }
57504 
57505     public:
57506       vk::StructureType sType = StructureType::eSamplerCreateInfo;
57507       const void* pNext = nullptr;
57508       vk::SamplerCreateFlags flags;
57509       vk::Filter magFilter;
57510       vk::Filter minFilter;
57511       vk::SamplerMipmapMode mipmapMode;
57512       vk::SamplerAddressMode addressModeU;
57513       vk::SamplerAddressMode addressModeV;
57514       vk::SamplerAddressMode addressModeW;
57515       float mipLodBias;
57516       vk::Bool32 anisotropyEnable;
57517       float maxAnisotropy;
57518       vk::Bool32 compareEnable;
57519       vk::CompareOp compareOp;
57520       float minLod;
57521       float maxLod;
57522       vk::BorderColor borderColor;
57523       vk::Bool32 unnormalizedCoordinates;
57524     };
57525     static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "layout struct and wrapper have different size!" );
57526   }
57527 
57528   struct SamplerCreateInfo : public layout::SamplerCreateInfo
57529   {
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo57530     SamplerCreateInfo( vk::SamplerCreateFlags flags_ = vk::SamplerCreateFlags(),
57531                        vk::Filter magFilter_ = vk::Filter::eNearest,
57532                        vk::Filter minFilter_ = vk::Filter::eNearest,
57533                        vk::SamplerMipmapMode mipmapMode_ = vk::SamplerMipmapMode::eNearest,
57534                        vk::SamplerAddressMode addressModeU_ = vk::SamplerAddressMode::eRepeat,
57535                        vk::SamplerAddressMode addressModeV_ = vk::SamplerAddressMode::eRepeat,
57536                        vk::SamplerAddressMode addressModeW_ = vk::SamplerAddressMode::eRepeat,
57537                        float mipLodBias_ = 0,
57538                        vk::Bool32 anisotropyEnable_ = 0,
57539                        float maxAnisotropy_ = 0,
57540                        vk::Bool32 compareEnable_ = 0,
57541                        vk::CompareOp compareOp_ = vk::CompareOp::eNever,
57542                        float minLod_ = 0,
57543                        float maxLod_ = 0,
57544                        vk::BorderColor borderColor_ = vk::BorderColor::eFloatTransparentBlack,
57545                        vk::Bool32 unnormalizedCoordinates_ = 0 )
57546       : layout::SamplerCreateInfo( flags_, magFilter_, minFilter_, mipmapMode_, addressModeU_, addressModeV_, addressModeW_, mipLodBias_, anisotropyEnable_, maxAnisotropy_, compareEnable_, compareOp_, minLod_, maxLod_, borderColor_, unnormalizedCoordinates_ )
57547     {}
57548 
SamplerCreateInfoVULKAN_HPP_NAMESPACE::SamplerCreateInfo57549     SamplerCreateInfo( VkSamplerCreateInfo const & rhs )
57550       : layout::SamplerCreateInfo( rhs )
57551     {}
57552 
operator =VULKAN_HPP_NAMESPACE::SamplerCreateInfo57553     SamplerCreateInfo& operator=( VkSamplerCreateInfo const & rhs )
57554     {
57555       *reinterpret_cast<VkSamplerCreateInfo*>(this) = rhs;
57556       return *this;
57557     }
57558 
setPNextVULKAN_HPP_NAMESPACE::SamplerCreateInfo57559     SamplerCreateInfo & setPNext( const void* pNext_ )
57560     {
57561       pNext = pNext_;
57562       return *this;
57563     }
57564 
setFlagsVULKAN_HPP_NAMESPACE::SamplerCreateInfo57565     SamplerCreateInfo & setFlags( vk::SamplerCreateFlags flags_ )
57566     {
57567       flags = flags_;
57568       return *this;
57569     }
57570 
setMagFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo57571     SamplerCreateInfo & setMagFilter( vk::Filter magFilter_ )
57572     {
57573       magFilter = magFilter_;
57574       return *this;
57575     }
57576 
setMinFilterVULKAN_HPP_NAMESPACE::SamplerCreateInfo57577     SamplerCreateInfo & setMinFilter( vk::Filter minFilter_ )
57578     {
57579       minFilter = minFilter_;
57580       return *this;
57581     }
57582 
setMipmapModeVULKAN_HPP_NAMESPACE::SamplerCreateInfo57583     SamplerCreateInfo & setMipmapMode( vk::SamplerMipmapMode mipmapMode_ )
57584     {
57585       mipmapMode = mipmapMode_;
57586       return *this;
57587     }
57588 
setAddressModeUVULKAN_HPP_NAMESPACE::SamplerCreateInfo57589     SamplerCreateInfo & setAddressModeU( vk::SamplerAddressMode addressModeU_ )
57590     {
57591       addressModeU = addressModeU_;
57592       return *this;
57593     }
57594 
setAddressModeVVULKAN_HPP_NAMESPACE::SamplerCreateInfo57595     SamplerCreateInfo & setAddressModeV( vk::SamplerAddressMode addressModeV_ )
57596     {
57597       addressModeV = addressModeV_;
57598       return *this;
57599     }
57600 
setAddressModeWVULKAN_HPP_NAMESPACE::SamplerCreateInfo57601     SamplerCreateInfo & setAddressModeW( vk::SamplerAddressMode addressModeW_ )
57602     {
57603       addressModeW = addressModeW_;
57604       return *this;
57605     }
57606 
setMipLodBiasVULKAN_HPP_NAMESPACE::SamplerCreateInfo57607     SamplerCreateInfo & setMipLodBias( float mipLodBias_ )
57608     {
57609       mipLodBias = mipLodBias_;
57610       return *this;
57611     }
57612 
setAnisotropyEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo57613     SamplerCreateInfo & setAnisotropyEnable( vk::Bool32 anisotropyEnable_ )
57614     {
57615       anisotropyEnable = anisotropyEnable_;
57616       return *this;
57617     }
57618 
setMaxAnisotropyVULKAN_HPP_NAMESPACE::SamplerCreateInfo57619     SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ )
57620     {
57621       maxAnisotropy = maxAnisotropy_;
57622       return *this;
57623     }
57624 
setCompareEnableVULKAN_HPP_NAMESPACE::SamplerCreateInfo57625     SamplerCreateInfo & setCompareEnable( vk::Bool32 compareEnable_ )
57626     {
57627       compareEnable = compareEnable_;
57628       return *this;
57629     }
57630 
setCompareOpVULKAN_HPP_NAMESPACE::SamplerCreateInfo57631     SamplerCreateInfo & setCompareOp( vk::CompareOp compareOp_ )
57632     {
57633       compareOp = compareOp_;
57634       return *this;
57635     }
57636 
setMinLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo57637     SamplerCreateInfo & setMinLod( float minLod_ )
57638     {
57639       minLod = minLod_;
57640       return *this;
57641     }
57642 
setMaxLodVULKAN_HPP_NAMESPACE::SamplerCreateInfo57643     SamplerCreateInfo & setMaxLod( float maxLod_ )
57644     {
57645       maxLod = maxLod_;
57646       return *this;
57647     }
57648 
setBorderColorVULKAN_HPP_NAMESPACE::SamplerCreateInfo57649     SamplerCreateInfo & setBorderColor( vk::BorderColor borderColor_ )
57650     {
57651       borderColor = borderColor_;
57652       return *this;
57653     }
57654 
setUnnormalizedCoordinatesVULKAN_HPP_NAMESPACE::SamplerCreateInfo57655     SamplerCreateInfo & setUnnormalizedCoordinates( vk::Bool32 unnormalizedCoordinates_ )
57656     {
57657       unnormalizedCoordinates = unnormalizedCoordinates_;
57658       return *this;
57659     }
57660 
operator VkSamplerCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerCreateInfo57661     operator VkSamplerCreateInfo const&() const
57662     {
57663       return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
57664     }
57665 
operator VkSamplerCreateInfo&VULKAN_HPP_NAMESPACE::SamplerCreateInfo57666     operator VkSamplerCreateInfo &()
57667     {
57668       return *reinterpret_cast<VkSamplerCreateInfo*>( this );
57669     }
57670 
operator ==VULKAN_HPP_NAMESPACE::SamplerCreateInfo57671     bool operator==( SamplerCreateInfo const& rhs ) const
57672     {
57673       return ( sType == rhs.sType )
57674           && ( pNext == rhs.pNext )
57675           && ( flags == rhs.flags )
57676           && ( magFilter == rhs.magFilter )
57677           && ( minFilter == rhs.minFilter )
57678           && ( mipmapMode == rhs.mipmapMode )
57679           && ( addressModeU == rhs.addressModeU )
57680           && ( addressModeV == rhs.addressModeV )
57681           && ( addressModeW == rhs.addressModeW )
57682           && ( mipLodBias == rhs.mipLodBias )
57683           && ( anisotropyEnable == rhs.anisotropyEnable )
57684           && ( maxAnisotropy == rhs.maxAnisotropy )
57685           && ( compareEnable == rhs.compareEnable )
57686           && ( compareOp == rhs.compareOp )
57687           && ( minLod == rhs.minLod )
57688           && ( maxLod == rhs.maxLod )
57689           && ( borderColor == rhs.borderColor )
57690           && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
57691     }
57692 
operator !=VULKAN_HPP_NAMESPACE::SamplerCreateInfo57693     bool operator!=( SamplerCreateInfo const& rhs ) const
57694     {
57695       return !operator==( rhs );
57696     }
57697 
57698   private:
57699     using layout::SamplerCreateInfo::sType;
57700   };
57701   static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
57702   static_assert( std::is_standard_layout<SamplerCreateInfo>::value, "struct wrapper is not a standard layout!" );
57703 
57704   namespace layout
57705   {
57706     struct SamplerReductionModeCreateInfoEXT
57707     {
57708     protected:
SamplerReductionModeCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::SamplerReductionModeCreateInfoEXT57709       SamplerReductionModeCreateInfoEXT( vk::SamplerReductionModeEXT reductionMode_ = vk::SamplerReductionModeEXT::eWeightedAverage )
57710         : reductionMode( reductionMode_ )
57711       {}
57712 
SamplerReductionModeCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::SamplerReductionModeCreateInfoEXT57713       SamplerReductionModeCreateInfoEXT( VkSamplerReductionModeCreateInfoEXT const & rhs )
57714       {
57715         *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this) = rhs;
57716       }
57717 
operator =VULKAN_HPP_NAMESPACE::layout::SamplerReductionModeCreateInfoEXT57718       SamplerReductionModeCreateInfoEXT& operator=( VkSamplerReductionModeCreateInfoEXT const & rhs )
57719       {
57720         *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this) = rhs;
57721         return *this;
57722       }
57723 
57724     public:
57725       vk::StructureType sType = StructureType::eSamplerReductionModeCreateInfoEXT;
57726       const void* pNext = nullptr;
57727       vk::SamplerReductionModeEXT reductionMode;
57728     };
57729     static_assert( sizeof( SamplerReductionModeCreateInfoEXT ) == sizeof( VkSamplerReductionModeCreateInfoEXT ), "layout struct and wrapper have different size!" );
57730   }
57731 
57732   struct SamplerReductionModeCreateInfoEXT : public layout::SamplerReductionModeCreateInfoEXT
57733   {
SamplerReductionModeCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57734     SamplerReductionModeCreateInfoEXT( vk::SamplerReductionModeEXT reductionMode_ = vk::SamplerReductionModeEXT::eWeightedAverage )
57735       : layout::SamplerReductionModeCreateInfoEXT( reductionMode_ )
57736     {}
57737 
SamplerReductionModeCreateInfoEXTVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57738     SamplerReductionModeCreateInfoEXT( VkSamplerReductionModeCreateInfoEXT const & rhs )
57739       : layout::SamplerReductionModeCreateInfoEXT( rhs )
57740     {}
57741 
operator =VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57742     SamplerReductionModeCreateInfoEXT& operator=( VkSamplerReductionModeCreateInfoEXT const & rhs )
57743     {
57744       *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this) = rhs;
57745       return *this;
57746     }
57747 
setPNextVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57748     SamplerReductionModeCreateInfoEXT & setPNext( const void* pNext_ )
57749     {
57750       pNext = pNext_;
57751       return *this;
57752     }
57753 
setReductionModeVULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57754     SamplerReductionModeCreateInfoEXT & setReductionMode( vk::SamplerReductionModeEXT reductionMode_ )
57755     {
57756       reductionMode = reductionMode_;
57757       return *this;
57758     }
57759 
operator VkSamplerReductionModeCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57760     operator VkSamplerReductionModeCreateInfoEXT const&() const
57761     {
57762       return *reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>( this );
57763     }
57764 
operator VkSamplerReductionModeCreateInfoEXT&VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57765     operator VkSamplerReductionModeCreateInfoEXT &()
57766     {
57767       return *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>( this );
57768     }
57769 
operator ==VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57770     bool operator==( SamplerReductionModeCreateInfoEXT const& rhs ) const
57771     {
57772       return ( sType == rhs.sType )
57773           && ( pNext == rhs.pNext )
57774           && ( reductionMode == rhs.reductionMode );
57775     }
57776 
operator !=VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfoEXT57777     bool operator!=( SamplerReductionModeCreateInfoEXT const& rhs ) const
57778     {
57779       return !operator==( rhs );
57780     }
57781 
57782   private:
57783     using layout::SamplerReductionModeCreateInfoEXT::sType;
57784   };
57785   static_assert( sizeof( SamplerReductionModeCreateInfoEXT ) == sizeof( VkSamplerReductionModeCreateInfoEXT ), "struct and wrapper have different size!" );
57786   static_assert( std::is_standard_layout<SamplerReductionModeCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
57787 
57788   namespace layout
57789   {
57790     struct SamplerYcbcrConversionCreateInfo
57791     {
57792     protected:
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionCreateInfo57793       SamplerYcbcrConversionCreateInfo( vk::Format format_ = vk::Format::eUndefined,
57794                                         vk::SamplerYcbcrModelConversion ycbcrModel_ = vk::SamplerYcbcrModelConversion::eRgbIdentity,
57795                                         vk::SamplerYcbcrRange ycbcrRange_ = vk::SamplerYcbcrRange::eItuFull,
57796                                         vk::ComponentMapping components_ = vk::ComponentMapping(),
57797                                         vk::ChromaLocation xChromaOffset_ = vk::ChromaLocation::eCositedEven,
57798                                         vk::ChromaLocation yChromaOffset_ = vk::ChromaLocation::eCositedEven,
57799                                         vk::Filter chromaFilter_ = vk::Filter::eNearest,
57800                                         vk::Bool32 forceExplicitReconstruction_ = 0 )
57801         : format( format_ )
57802         , ycbcrModel( ycbcrModel_ )
57803         , ycbcrRange( ycbcrRange_ )
57804         , components( components_ )
57805         , xChromaOffset( xChromaOffset_ )
57806         , yChromaOffset( yChromaOffset_ )
57807         , chromaFilter( chromaFilter_ )
57808         , forceExplicitReconstruction( forceExplicitReconstruction_ )
57809       {}
57810 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionCreateInfo57811       SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs )
57812       {
57813         *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this) = rhs;
57814       }
57815 
operator =VULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionCreateInfo57816       SamplerYcbcrConversionCreateInfo& operator=( VkSamplerYcbcrConversionCreateInfo const & rhs )
57817       {
57818         *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this) = rhs;
57819         return *this;
57820       }
57821 
57822     public:
57823       vk::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
57824       const void* pNext = nullptr;
57825       vk::Format format;
57826       vk::SamplerYcbcrModelConversion ycbcrModel;
57827       vk::SamplerYcbcrRange ycbcrRange;
57828       vk::ComponentMapping components;
57829       vk::ChromaLocation xChromaOffset;
57830       vk::ChromaLocation yChromaOffset;
57831       vk::Filter chromaFilter;
57832       vk::Bool32 forceExplicitReconstruction;
57833     };
57834     static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "layout struct and wrapper have different size!" );
57835   }
57836 
57837   struct SamplerYcbcrConversionCreateInfo : public layout::SamplerYcbcrConversionCreateInfo
57838   {
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57839     SamplerYcbcrConversionCreateInfo( vk::Format format_ = vk::Format::eUndefined,
57840                                       vk::SamplerYcbcrModelConversion ycbcrModel_ = vk::SamplerYcbcrModelConversion::eRgbIdentity,
57841                                       vk::SamplerYcbcrRange ycbcrRange_ = vk::SamplerYcbcrRange::eItuFull,
57842                                       vk::ComponentMapping components_ = vk::ComponentMapping(),
57843                                       vk::ChromaLocation xChromaOffset_ = vk::ChromaLocation::eCositedEven,
57844                                       vk::ChromaLocation yChromaOffset_ = vk::ChromaLocation::eCositedEven,
57845                                       vk::Filter chromaFilter_ = vk::Filter::eNearest,
57846                                       vk::Bool32 forceExplicitReconstruction_ = 0 )
57847       : layout::SamplerYcbcrConversionCreateInfo( format_, ycbcrModel_, ycbcrRange_, components_, xChromaOffset_, yChromaOffset_, chromaFilter_, forceExplicitReconstruction_ )
57848     {}
57849 
SamplerYcbcrConversionCreateInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57850     SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs )
57851       : layout::SamplerYcbcrConversionCreateInfo( rhs )
57852     {}
57853 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57854     SamplerYcbcrConversionCreateInfo& operator=( VkSamplerYcbcrConversionCreateInfo const & rhs )
57855     {
57856       *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this) = rhs;
57857       return *this;
57858     }
57859 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57860     SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ )
57861     {
57862       pNext = pNext_;
57863       return *this;
57864     }
57865 
setFormatVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57866     SamplerYcbcrConversionCreateInfo & setFormat( vk::Format format_ )
57867     {
57868       format = format_;
57869       return *this;
57870     }
57871 
setYcbcrModelVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57872     SamplerYcbcrConversionCreateInfo & setYcbcrModel( vk::SamplerYcbcrModelConversion ycbcrModel_ )
57873     {
57874       ycbcrModel = ycbcrModel_;
57875       return *this;
57876     }
57877 
setYcbcrRangeVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57878     SamplerYcbcrConversionCreateInfo & setYcbcrRange( vk::SamplerYcbcrRange ycbcrRange_ )
57879     {
57880       ycbcrRange = ycbcrRange_;
57881       return *this;
57882     }
57883 
setComponentsVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57884     SamplerYcbcrConversionCreateInfo & setComponents( vk::ComponentMapping components_ )
57885     {
57886       components = components_;
57887       return *this;
57888     }
57889 
setXChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57890     SamplerYcbcrConversionCreateInfo & setXChromaOffset( vk::ChromaLocation xChromaOffset_ )
57891     {
57892       xChromaOffset = xChromaOffset_;
57893       return *this;
57894     }
57895 
setYChromaOffsetVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57896     SamplerYcbcrConversionCreateInfo & setYChromaOffset( vk::ChromaLocation yChromaOffset_ )
57897     {
57898       yChromaOffset = yChromaOffset_;
57899       return *this;
57900     }
57901 
setChromaFilterVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57902     SamplerYcbcrConversionCreateInfo & setChromaFilter( vk::Filter chromaFilter_ )
57903     {
57904       chromaFilter = chromaFilter_;
57905       return *this;
57906     }
57907 
setForceExplicitReconstructionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57908     SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( vk::Bool32 forceExplicitReconstruction_ )
57909     {
57910       forceExplicitReconstruction = forceExplicitReconstruction_;
57911       return *this;
57912     }
57913 
operator VkSamplerYcbcrConversionCreateInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57914     operator VkSamplerYcbcrConversionCreateInfo const&() const
57915     {
57916       return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
57917     }
57918 
operator VkSamplerYcbcrConversionCreateInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57919     operator VkSamplerYcbcrConversionCreateInfo &()
57920     {
57921       return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
57922     }
57923 
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57924     bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const
57925     {
57926       return ( sType == rhs.sType )
57927           && ( pNext == rhs.pNext )
57928           && ( format == rhs.format )
57929           && ( ycbcrModel == rhs.ycbcrModel )
57930           && ( ycbcrRange == rhs.ycbcrRange )
57931           && ( components == rhs.components )
57932           && ( xChromaOffset == rhs.xChromaOffset )
57933           && ( yChromaOffset == rhs.yChromaOffset )
57934           && ( chromaFilter == rhs.chromaFilter )
57935           && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
57936     }
57937 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo57938     bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const
57939     {
57940       return !operator==( rhs );
57941     }
57942 
57943   private:
57944     using layout::SamplerYcbcrConversionCreateInfo::sType;
57945   };
57946   static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
57947   static_assert( std::is_standard_layout<SamplerYcbcrConversionCreateInfo>::value, "struct wrapper is not a standard layout!" );
57948 
57949   namespace layout
57950   {
57951     struct SamplerYcbcrConversionImageFormatProperties
57952     {
57953     protected:
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionImageFormatProperties57954       SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = 0 )
57955         : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
57956       {}
57957 
SamplerYcbcrConversionImageFormatPropertiesVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionImageFormatProperties57958       SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs )
57959       {
57960         *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(this) = rhs;
57961       }
57962 
operator =VULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionImageFormatProperties57963       SamplerYcbcrConversionImageFormatProperties& operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs )
57964       {
57965         *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(this) = rhs;
57966         return *this;
57967       }
57968 
57969     public:
57970       vk::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
57971       void* pNext = nullptr;
57972       uint32_t combinedImageSamplerDescriptorCount;
57973     };
57974     static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "layout struct and wrapper have different size!" );
57975   }
57976 
57977   struct SamplerYcbcrConversionImageFormatProperties : public layout::SamplerYcbcrConversionImageFormatProperties
57978   {
operator VkSamplerYcbcrConversionImageFormatProperties const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties57979     operator VkSamplerYcbcrConversionImageFormatProperties const&() const
57980     {
57981       return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
57982     }
57983 
operator VkSamplerYcbcrConversionImageFormatProperties&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties57984     operator VkSamplerYcbcrConversionImageFormatProperties &()
57985     {
57986       return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
57987     }
57988 
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties57989     bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const
57990     {
57991       return ( sType == rhs.sType )
57992           && ( pNext == rhs.pNext )
57993           && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
57994     }
57995 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties57996     bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const
57997     {
57998       return !operator==( rhs );
57999     }
58000 
58001   private:
58002     using layout::SamplerYcbcrConversionImageFormatProperties::sType;
58003   };
58004   static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
58005   static_assert( std::is_standard_layout<SamplerYcbcrConversionImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
58006 
58007   namespace layout
58008   {
58009     struct SamplerYcbcrConversionInfo
58010     {
58011     protected:
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionInfo58012       SamplerYcbcrConversionInfo( vk::SamplerYcbcrConversion conversion_ = vk::SamplerYcbcrConversion() )
58013         : conversion( conversion_ )
58014       {}
58015 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionInfo58016       SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs )
58017       {
58018         *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this) = rhs;
58019       }
58020 
operator =VULKAN_HPP_NAMESPACE::layout::SamplerYcbcrConversionInfo58021       SamplerYcbcrConversionInfo& operator=( VkSamplerYcbcrConversionInfo const & rhs )
58022       {
58023         *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this) = rhs;
58024         return *this;
58025       }
58026 
58027     public:
58028       vk::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
58029       const void* pNext = nullptr;
58030       vk::SamplerYcbcrConversion conversion;
58031     };
58032     static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "layout struct and wrapper have different size!" );
58033   }
58034 
58035   struct SamplerYcbcrConversionInfo : public layout::SamplerYcbcrConversionInfo
58036   {
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58037     SamplerYcbcrConversionInfo( vk::SamplerYcbcrConversion conversion_ = vk::SamplerYcbcrConversion() )
58038       : layout::SamplerYcbcrConversionInfo( conversion_ )
58039     {}
58040 
SamplerYcbcrConversionInfoVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58041     SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs )
58042       : layout::SamplerYcbcrConversionInfo( rhs )
58043     {}
58044 
operator =VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58045     SamplerYcbcrConversionInfo& operator=( VkSamplerYcbcrConversionInfo const & rhs )
58046     {
58047       *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this) = rhs;
58048       return *this;
58049     }
58050 
setPNextVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58051     SamplerYcbcrConversionInfo & setPNext( const void* pNext_ )
58052     {
58053       pNext = pNext_;
58054       return *this;
58055     }
58056 
setConversionVULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58057     SamplerYcbcrConversionInfo & setConversion( vk::SamplerYcbcrConversion conversion_ )
58058     {
58059       conversion = conversion_;
58060       return *this;
58061     }
58062 
operator VkSamplerYcbcrConversionInfo const&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58063     operator VkSamplerYcbcrConversionInfo const&() const
58064     {
58065       return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
58066     }
58067 
operator VkSamplerYcbcrConversionInfo&VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58068     operator VkSamplerYcbcrConversionInfo &()
58069     {
58070       return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
58071     }
58072 
operator ==VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58073     bool operator==( SamplerYcbcrConversionInfo const& rhs ) const
58074     {
58075       return ( sType == rhs.sType )
58076           && ( pNext == rhs.pNext )
58077           && ( conversion == rhs.conversion );
58078     }
58079 
operator !=VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo58080     bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const
58081     {
58082       return !operator==( rhs );
58083     }
58084 
58085   private:
58086     using layout::SamplerYcbcrConversionInfo::sType;
58087   };
58088   static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
58089   static_assert( std::is_standard_layout<SamplerYcbcrConversionInfo>::value, "struct wrapper is not a standard layout!" );
58090 
58091   namespace layout
58092   {
58093     struct SemaphoreCreateInfo
58094     {
58095     protected:
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::layout::SemaphoreCreateInfo58096       SemaphoreCreateInfo( vk::SemaphoreCreateFlags flags_ = vk::SemaphoreCreateFlags() )
58097         : flags( flags_ )
58098       {}
58099 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::layout::SemaphoreCreateInfo58100       SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs )
58101       {
58102         *reinterpret_cast<VkSemaphoreCreateInfo*>(this) = rhs;
58103       }
58104 
operator =VULKAN_HPP_NAMESPACE::layout::SemaphoreCreateInfo58105       SemaphoreCreateInfo& operator=( VkSemaphoreCreateInfo const & rhs )
58106       {
58107         *reinterpret_cast<VkSemaphoreCreateInfo*>(this) = rhs;
58108         return *this;
58109       }
58110 
58111     public:
58112       vk::StructureType sType = StructureType::eSemaphoreCreateInfo;
58113       const void* pNext = nullptr;
58114       vk::SemaphoreCreateFlags flags;
58115     };
58116     static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "layout struct and wrapper have different size!" );
58117   }
58118 
58119   struct SemaphoreCreateInfo : public layout::SemaphoreCreateInfo
58120   {
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58121     SemaphoreCreateInfo( vk::SemaphoreCreateFlags flags_ = vk::SemaphoreCreateFlags() )
58122       : layout::SemaphoreCreateInfo( flags_ )
58123     {}
58124 
SemaphoreCreateInfoVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58125     SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs )
58126       : layout::SemaphoreCreateInfo( rhs )
58127     {}
58128 
operator =VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58129     SemaphoreCreateInfo& operator=( VkSemaphoreCreateInfo const & rhs )
58130     {
58131       *reinterpret_cast<VkSemaphoreCreateInfo*>(this) = rhs;
58132       return *this;
58133     }
58134 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58135     SemaphoreCreateInfo & setPNext( const void* pNext_ )
58136     {
58137       pNext = pNext_;
58138       return *this;
58139     }
58140 
setFlagsVULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58141     SemaphoreCreateInfo & setFlags( vk::SemaphoreCreateFlags flags_ )
58142     {
58143       flags = flags_;
58144       return *this;
58145     }
58146 
operator VkSemaphoreCreateInfo const&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58147     operator VkSemaphoreCreateInfo const&() const
58148     {
58149       return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
58150     }
58151 
operator VkSemaphoreCreateInfo&VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58152     operator VkSemaphoreCreateInfo &()
58153     {
58154       return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
58155     }
58156 
operator ==VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58157     bool operator==( SemaphoreCreateInfo const& rhs ) const
58158     {
58159       return ( sType == rhs.sType )
58160           && ( pNext == rhs.pNext )
58161           && ( flags == rhs.flags );
58162     }
58163 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo58164     bool operator!=( SemaphoreCreateInfo const& rhs ) const
58165     {
58166       return !operator==( rhs );
58167     }
58168 
58169   private:
58170     using layout::SemaphoreCreateInfo::sType;
58171   };
58172   static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
58173   static_assert( std::is_standard_layout<SemaphoreCreateInfo>::value, "struct wrapper is not a standard layout!" );
58174 
58175   namespace layout
58176   {
58177     struct SemaphoreGetFdInfoKHR
58178     {
58179     protected:
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::SemaphoreGetFdInfoKHR58180       SemaphoreGetFdInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
58181                              vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
58182         : semaphore( semaphore_ )
58183         , handleType( handleType_ )
58184       {}
58185 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::layout::SemaphoreGetFdInfoKHR58186       SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs )
58187       {
58188         *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this) = rhs;
58189       }
58190 
operator =VULKAN_HPP_NAMESPACE::layout::SemaphoreGetFdInfoKHR58191       SemaphoreGetFdInfoKHR& operator=( VkSemaphoreGetFdInfoKHR const & rhs )
58192       {
58193         *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this) = rhs;
58194         return *this;
58195       }
58196 
58197     public:
58198       vk::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
58199       const void* pNext = nullptr;
58200       vk::Semaphore semaphore;
58201       vk::ExternalSemaphoreHandleTypeFlagBits handleType;
58202     };
58203     static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "layout struct and wrapper have different size!" );
58204   }
58205 
58206   struct SemaphoreGetFdInfoKHR : public layout::SemaphoreGetFdInfoKHR
58207   {
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58208     SemaphoreGetFdInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
58209                            vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
58210       : layout::SemaphoreGetFdInfoKHR( semaphore_, handleType_ )
58211     {}
58212 
SemaphoreGetFdInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58213     SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs )
58214       : layout::SemaphoreGetFdInfoKHR( rhs )
58215     {}
58216 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58217     SemaphoreGetFdInfoKHR& operator=( VkSemaphoreGetFdInfoKHR const & rhs )
58218     {
58219       *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this) = rhs;
58220       return *this;
58221     }
58222 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58223     SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ )
58224     {
58225       pNext = pNext_;
58226       return *this;
58227     }
58228 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58229     SemaphoreGetFdInfoKHR & setSemaphore( vk::Semaphore semaphore_ )
58230     {
58231       semaphore = semaphore_;
58232       return *this;
58233     }
58234 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58235     SemaphoreGetFdInfoKHR & setHandleType( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ )
58236     {
58237       handleType = handleType_;
58238       return *this;
58239     }
58240 
operator VkSemaphoreGetFdInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58241     operator VkSemaphoreGetFdInfoKHR const&() const
58242     {
58243       return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
58244     }
58245 
operator VkSemaphoreGetFdInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58246     operator VkSemaphoreGetFdInfoKHR &()
58247     {
58248       return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
58249     }
58250 
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58251     bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const
58252     {
58253       return ( sType == rhs.sType )
58254           && ( pNext == rhs.pNext )
58255           && ( semaphore == rhs.semaphore )
58256           && ( handleType == rhs.handleType );
58257     }
58258 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR58259     bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const
58260     {
58261       return !operator==( rhs );
58262     }
58263 
58264   private:
58265     using layout::SemaphoreGetFdInfoKHR::sType;
58266   };
58267   static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
58268   static_assert( std::is_standard_layout<SemaphoreGetFdInfoKHR>::value, "struct wrapper is not a standard layout!" );
58269 
58270 #ifdef VK_USE_PLATFORM_WIN32_KHR
58271 
58272   namespace layout
58273   {
58274     struct SemaphoreGetWin32HandleInfoKHR
58275     {
58276     protected:
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::SemaphoreGetWin32HandleInfoKHR58277       SemaphoreGetWin32HandleInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
58278                                       vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
58279         : semaphore( semaphore_ )
58280         , handleType( handleType_ )
58281       {}
58282 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::layout::SemaphoreGetWin32HandleInfoKHR58283       SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
58284       {
58285         *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this) = rhs;
58286       }
58287 
operator =VULKAN_HPP_NAMESPACE::layout::SemaphoreGetWin32HandleInfoKHR58288       SemaphoreGetWin32HandleInfoKHR& operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
58289       {
58290         *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this) = rhs;
58291         return *this;
58292       }
58293 
58294     public:
58295       vk::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
58296       const void* pNext = nullptr;
58297       vk::Semaphore semaphore;
58298       vk::ExternalSemaphoreHandleTypeFlagBits handleType;
58299     };
58300     static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "layout struct and wrapper have different size!" );
58301   }
58302 
58303   struct SemaphoreGetWin32HandleInfoKHR : public layout::SemaphoreGetWin32HandleInfoKHR
58304   {
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58305     SemaphoreGetWin32HandleInfoKHR( vk::Semaphore semaphore_ = vk::Semaphore(),
58306                                     vk::ExternalSemaphoreHandleTypeFlagBits handleType_ = vk::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
58307       : layout::SemaphoreGetWin32HandleInfoKHR( semaphore_, handleType_ )
58308     {}
58309 
SemaphoreGetWin32HandleInfoKHRVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58310     SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
58311       : layout::SemaphoreGetWin32HandleInfoKHR( rhs )
58312     {}
58313 
operator =VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58314     SemaphoreGetWin32HandleInfoKHR& operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
58315     {
58316       *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this) = rhs;
58317       return *this;
58318     }
58319 
setPNextVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58320     SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
58321     {
58322       pNext = pNext_;
58323       return *this;
58324     }
58325 
setSemaphoreVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58326     SemaphoreGetWin32HandleInfoKHR & setSemaphore( vk::Semaphore semaphore_ )
58327     {
58328       semaphore = semaphore_;
58329       return *this;
58330     }
58331 
setHandleTypeVULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58332     SemaphoreGetWin32HandleInfoKHR & setHandleType( vk::ExternalSemaphoreHandleTypeFlagBits handleType_ )
58333     {
58334       handleType = handleType_;
58335       return *this;
58336     }
58337 
operator VkSemaphoreGetWin32HandleInfoKHR const&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58338     operator VkSemaphoreGetWin32HandleInfoKHR const&() const
58339     {
58340       return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
58341     }
58342 
operator VkSemaphoreGetWin32HandleInfoKHR&VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58343     operator VkSemaphoreGetWin32HandleInfoKHR &()
58344     {
58345       return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
58346     }
58347 
operator ==VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58348     bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const
58349     {
58350       return ( sType == rhs.sType )
58351           && ( pNext == rhs.pNext )
58352           && ( semaphore == rhs.semaphore )
58353           && ( handleType == rhs.handleType );
58354     }
58355 
operator !=VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR58356     bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const
58357     {
58358       return !operator==( rhs );
58359     }
58360 
58361   private:
58362     using layout::SemaphoreGetWin32HandleInfoKHR::sType;
58363   };
58364   static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
58365   static_assert( std::is_standard_layout<SemaphoreGetWin32HandleInfoKHR>::value, "struct wrapper is not a standard layout!" );
58366 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
58367 
58368   namespace layout
58369   {
58370     struct ShaderModuleCreateInfo
58371     {
58372     protected:
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::layout::ShaderModuleCreateInfo58373       ShaderModuleCreateInfo( vk::ShaderModuleCreateFlags flags_ = vk::ShaderModuleCreateFlags(),
58374                               size_t codeSize_ = 0,
58375                               const uint32_t* pCode_ = nullptr )
58376         : flags( flags_ )
58377         , codeSize( codeSize_ )
58378         , pCode( pCode_ )
58379       {}
58380 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::layout::ShaderModuleCreateInfo58381       ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs )
58382       {
58383         *reinterpret_cast<VkShaderModuleCreateInfo*>(this) = rhs;
58384       }
58385 
operator =VULKAN_HPP_NAMESPACE::layout::ShaderModuleCreateInfo58386       ShaderModuleCreateInfo& operator=( VkShaderModuleCreateInfo const & rhs )
58387       {
58388         *reinterpret_cast<VkShaderModuleCreateInfo*>(this) = rhs;
58389         return *this;
58390       }
58391 
58392     public:
58393       vk::StructureType sType = StructureType::eShaderModuleCreateInfo;
58394       const void* pNext = nullptr;
58395       vk::ShaderModuleCreateFlags flags;
58396       size_t codeSize;
58397       const uint32_t* pCode;
58398     };
58399     static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "layout struct and wrapper have different size!" );
58400   }
58401 
58402   struct ShaderModuleCreateInfo : public layout::ShaderModuleCreateInfo
58403   {
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58404     ShaderModuleCreateInfo( vk::ShaderModuleCreateFlags flags_ = vk::ShaderModuleCreateFlags(),
58405                             size_t codeSize_ = 0,
58406                             const uint32_t* pCode_ = nullptr )
58407       : layout::ShaderModuleCreateInfo( flags_, codeSize_, pCode_ )
58408     {}
58409 
ShaderModuleCreateInfoVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58410     ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs )
58411       : layout::ShaderModuleCreateInfo( rhs )
58412     {}
58413 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58414     ShaderModuleCreateInfo& operator=( VkShaderModuleCreateInfo const & rhs )
58415     {
58416       *reinterpret_cast<VkShaderModuleCreateInfo*>(this) = rhs;
58417       return *this;
58418     }
58419 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58420     ShaderModuleCreateInfo & setPNext( const void* pNext_ )
58421     {
58422       pNext = pNext_;
58423       return *this;
58424     }
58425 
setFlagsVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58426     ShaderModuleCreateInfo & setFlags( vk::ShaderModuleCreateFlags flags_ )
58427     {
58428       flags = flags_;
58429       return *this;
58430     }
58431 
setCodeSizeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58432     ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ )
58433     {
58434       codeSize = codeSize_;
58435       return *this;
58436     }
58437 
setPCodeVULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58438     ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ )
58439     {
58440       pCode = pCode_;
58441       return *this;
58442     }
58443 
operator VkShaderModuleCreateInfo const&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58444     operator VkShaderModuleCreateInfo const&() const
58445     {
58446       return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
58447     }
58448 
operator VkShaderModuleCreateInfo&VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58449     operator VkShaderModuleCreateInfo &()
58450     {
58451       return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
58452     }
58453 
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58454     bool operator==( ShaderModuleCreateInfo const& rhs ) const
58455     {
58456       return ( sType == rhs.sType )
58457           && ( pNext == rhs.pNext )
58458           && ( flags == rhs.flags )
58459           && ( codeSize == rhs.codeSize )
58460           && ( pCode == rhs.pCode );
58461     }
58462 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo58463     bool operator!=( ShaderModuleCreateInfo const& rhs ) const
58464     {
58465       return !operator==( rhs );
58466     }
58467 
58468   private:
58469     using layout::ShaderModuleCreateInfo::sType;
58470   };
58471   static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
58472   static_assert( std::is_standard_layout<ShaderModuleCreateInfo>::value, "struct wrapper is not a standard layout!" );
58473 
58474   namespace layout
58475   {
58476     struct ShaderModuleValidationCacheCreateInfoEXT
58477     {
58478     protected:
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ShaderModuleValidationCacheCreateInfoEXT58479       ShaderModuleValidationCacheCreateInfoEXT( vk::ValidationCacheEXT validationCache_ = vk::ValidationCacheEXT() )
58480         : validationCache( validationCache_ )
58481       {}
58482 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ShaderModuleValidationCacheCreateInfoEXT58483       ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
58484       {
58485         *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this) = rhs;
58486       }
58487 
operator =VULKAN_HPP_NAMESPACE::layout::ShaderModuleValidationCacheCreateInfoEXT58488       ShaderModuleValidationCacheCreateInfoEXT& operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
58489       {
58490         *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this) = rhs;
58491         return *this;
58492       }
58493 
58494     public:
58495       vk::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
58496       const void* pNext = nullptr;
58497       vk::ValidationCacheEXT validationCache;
58498     };
58499     static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "layout struct and wrapper have different size!" );
58500   }
58501 
58502   struct ShaderModuleValidationCacheCreateInfoEXT : public layout::ShaderModuleValidationCacheCreateInfoEXT
58503   {
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58504     ShaderModuleValidationCacheCreateInfoEXT( vk::ValidationCacheEXT validationCache_ = vk::ValidationCacheEXT() )
58505       : layout::ShaderModuleValidationCacheCreateInfoEXT( validationCache_ )
58506     {}
58507 
ShaderModuleValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58508     ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
58509       : layout::ShaderModuleValidationCacheCreateInfoEXT( rhs )
58510     {}
58511 
operator =VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58512     ShaderModuleValidationCacheCreateInfoEXT& operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
58513     {
58514       *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this) = rhs;
58515       return *this;
58516     }
58517 
setPNextVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58518     ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ )
58519     {
58520       pNext = pNext_;
58521       return *this;
58522     }
58523 
setValidationCacheVULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58524     ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( vk::ValidationCacheEXT validationCache_ )
58525     {
58526       validationCache = validationCache_;
58527       return *this;
58528     }
58529 
operator VkShaderModuleValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58530     operator VkShaderModuleValidationCacheCreateInfoEXT const&() const
58531     {
58532       return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
58533     }
58534 
operator VkShaderModuleValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58535     operator VkShaderModuleValidationCacheCreateInfoEXT &()
58536     {
58537       return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
58538     }
58539 
operator ==VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58540     bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const
58541     {
58542       return ( sType == rhs.sType )
58543           && ( pNext == rhs.pNext )
58544           && ( validationCache == rhs.validationCache );
58545     }
58546 
operator !=VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT58547     bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const
58548     {
58549       return !operator==( rhs );
58550     }
58551 
58552   private:
58553     using layout::ShaderModuleValidationCacheCreateInfoEXT::sType;
58554   };
58555   static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
58556   static_assert( std::is_standard_layout<ShaderModuleValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
58557 
58558   struct ShaderResourceUsageAMD
58559   {
operator VkShaderResourceUsageAMD const&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD58560     operator VkShaderResourceUsageAMD const&() const
58561     {
58562       return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
58563     }
58564 
operator VkShaderResourceUsageAMD&VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD58565     operator VkShaderResourceUsageAMD &()
58566     {
58567       return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
58568     }
58569 
operator ==VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD58570     bool operator==( ShaderResourceUsageAMD const& rhs ) const
58571     {
58572       return ( numUsedVgprs == rhs.numUsedVgprs )
58573           && ( numUsedSgprs == rhs.numUsedSgprs )
58574           && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
58575           && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
58576           && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
58577     }
58578 
operator !=VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD58579     bool operator!=( ShaderResourceUsageAMD const& rhs ) const
58580     {
58581       return !operator==( rhs );
58582     }
58583 
58584   public:
58585     uint32_t numUsedVgprs;
58586     uint32_t numUsedSgprs;
58587     uint32_t ldsSizePerLocalWorkGroup;
58588     size_t ldsUsageSizeInBytes;
58589     size_t scratchMemUsageInBytes;
58590   };
58591   static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
58592   static_assert( std::is_standard_layout<ShaderResourceUsageAMD>::value, "struct wrapper is not a standard layout!" );
58593 
58594   struct ShaderStatisticsInfoAMD
58595   {
operator VkShaderStatisticsInfoAMD const&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD58596     operator VkShaderStatisticsInfoAMD const&() const
58597     {
58598       return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
58599     }
58600 
operator VkShaderStatisticsInfoAMD&VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD58601     operator VkShaderStatisticsInfoAMD &()
58602     {
58603       return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
58604     }
58605 
operator ==VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD58606     bool operator==( ShaderStatisticsInfoAMD const& rhs ) const
58607     {
58608       return ( shaderStageMask == rhs.shaderStageMask )
58609           && ( resourceUsage == rhs.resourceUsage )
58610           && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
58611           && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
58612           && ( numAvailableVgprs == rhs.numAvailableVgprs )
58613           && ( numAvailableSgprs == rhs.numAvailableSgprs )
58614           && ( memcmp( computeWorkGroupSize, rhs.computeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 );
58615     }
58616 
operator !=VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD58617     bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const
58618     {
58619       return !operator==( rhs );
58620     }
58621 
58622   public:
58623     vk::ShaderStageFlags shaderStageMask;
58624     vk::ShaderResourceUsageAMD resourceUsage;
58625     uint32_t numPhysicalVgprs;
58626     uint32_t numPhysicalSgprs;
58627     uint32_t numAvailableVgprs;
58628     uint32_t numAvailableSgprs;
58629     uint32_t computeWorkGroupSize[3];
58630   };
58631   static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
58632   static_assert( std::is_standard_layout<ShaderStatisticsInfoAMD>::value, "struct wrapper is not a standard layout!" );
58633 
58634   namespace layout
58635   {
58636     struct SharedPresentSurfaceCapabilitiesKHR
58637     {
58638     protected:
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::SharedPresentSurfaceCapabilitiesKHR58639       SharedPresentSurfaceCapabilitiesKHR( vk::ImageUsageFlags sharedPresentSupportedUsageFlags_ = vk::ImageUsageFlags() )
58640         : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
58641       {}
58642 
SharedPresentSurfaceCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::SharedPresentSurfaceCapabilitiesKHR58643       SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs )
58644       {
58645         *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(this) = rhs;
58646       }
58647 
operator =VULKAN_HPP_NAMESPACE::layout::SharedPresentSurfaceCapabilitiesKHR58648       SharedPresentSurfaceCapabilitiesKHR& operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs )
58649       {
58650         *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(this) = rhs;
58651         return *this;
58652       }
58653 
58654     public:
58655       vk::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
58656       void* pNext = nullptr;
58657       vk::ImageUsageFlags sharedPresentSupportedUsageFlags;
58658     };
58659     static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "layout struct and wrapper have different size!" );
58660   }
58661 
58662   struct SharedPresentSurfaceCapabilitiesKHR : public layout::SharedPresentSurfaceCapabilitiesKHR
58663   {
operator VkSharedPresentSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR58664     operator VkSharedPresentSurfaceCapabilitiesKHR const&() const
58665     {
58666       return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
58667     }
58668 
operator VkSharedPresentSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR58669     operator VkSharedPresentSurfaceCapabilitiesKHR &()
58670     {
58671       return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
58672     }
58673 
operator ==VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR58674     bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const
58675     {
58676       return ( sType == rhs.sType )
58677           && ( pNext == rhs.pNext )
58678           && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
58679     }
58680 
operator !=VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR58681     bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const
58682     {
58683       return !operator==( rhs );
58684     }
58685 
58686   private:
58687     using layout::SharedPresentSurfaceCapabilitiesKHR::sType;
58688   };
58689   static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
58690   static_assert( std::is_standard_layout<SharedPresentSurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
58691 
58692   struct SparseImageFormatProperties
58693   {
operator VkSparseImageFormatProperties const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties58694     operator VkSparseImageFormatProperties const&() const
58695     {
58696       return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
58697     }
58698 
operator VkSparseImageFormatProperties&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties58699     operator VkSparseImageFormatProperties &()
58700     {
58701       return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
58702     }
58703 
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties58704     bool operator==( SparseImageFormatProperties const& rhs ) const
58705     {
58706       return ( aspectMask == rhs.aspectMask )
58707           && ( imageGranularity == rhs.imageGranularity )
58708           && ( flags == rhs.flags );
58709     }
58710 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties58711     bool operator!=( SparseImageFormatProperties const& rhs ) const
58712     {
58713       return !operator==( rhs );
58714     }
58715 
58716   public:
58717     vk::ImageAspectFlags aspectMask;
58718     vk::Extent3D imageGranularity;
58719     vk::SparseImageFormatFlags flags;
58720   };
58721   static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
58722   static_assert( std::is_standard_layout<SparseImageFormatProperties>::value, "struct wrapper is not a standard layout!" );
58723 
58724   namespace layout
58725   {
58726     struct SparseImageFormatProperties2
58727     {
58728     protected:
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::layout::SparseImageFormatProperties258729       SparseImageFormatProperties2( vk::SparseImageFormatProperties properties_ = vk::SparseImageFormatProperties() )
58730         : properties( properties_ )
58731       {}
58732 
SparseImageFormatProperties2VULKAN_HPP_NAMESPACE::layout::SparseImageFormatProperties258733       SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs )
58734       {
58735         *reinterpret_cast<VkSparseImageFormatProperties2*>(this) = rhs;
58736       }
58737 
operator =VULKAN_HPP_NAMESPACE::layout::SparseImageFormatProperties258738       SparseImageFormatProperties2& operator=( VkSparseImageFormatProperties2 const & rhs )
58739       {
58740         *reinterpret_cast<VkSparseImageFormatProperties2*>(this) = rhs;
58741         return *this;
58742       }
58743 
58744     public:
58745       vk::StructureType sType = StructureType::eSparseImageFormatProperties2;
58746       void* pNext = nullptr;
58747       vk::SparseImageFormatProperties properties;
58748     };
58749     static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "layout struct and wrapper have different size!" );
58750   }
58751 
58752   struct SparseImageFormatProperties2 : public layout::SparseImageFormatProperties2
58753   {
operator VkSparseImageFormatProperties2 const&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties258754     operator VkSparseImageFormatProperties2 const&() const
58755     {
58756       return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
58757     }
58758 
operator VkSparseImageFormatProperties2&VULKAN_HPP_NAMESPACE::SparseImageFormatProperties258759     operator VkSparseImageFormatProperties2 &()
58760     {
58761       return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
58762     }
58763 
operator ==VULKAN_HPP_NAMESPACE::SparseImageFormatProperties258764     bool operator==( SparseImageFormatProperties2 const& rhs ) const
58765     {
58766       return ( sType == rhs.sType )
58767           && ( pNext == rhs.pNext )
58768           && ( properties == rhs.properties );
58769     }
58770 
operator !=VULKAN_HPP_NAMESPACE::SparseImageFormatProperties258771     bool operator!=( SparseImageFormatProperties2 const& rhs ) const
58772     {
58773       return !operator==( rhs );
58774     }
58775 
58776   private:
58777     using layout::SparseImageFormatProperties2::sType;
58778   };
58779   static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
58780   static_assert( std::is_standard_layout<SparseImageFormatProperties2>::value, "struct wrapper is not a standard layout!" );
58781 
58782   struct SparseImageMemoryRequirements
58783   {
operator VkSparseImageMemoryRequirements const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements58784     operator VkSparseImageMemoryRequirements const&() const
58785     {
58786       return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
58787     }
58788 
operator VkSparseImageMemoryRequirements&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements58789     operator VkSparseImageMemoryRequirements &()
58790     {
58791       return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
58792     }
58793 
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements58794     bool operator==( SparseImageMemoryRequirements const& rhs ) const
58795     {
58796       return ( formatProperties == rhs.formatProperties )
58797           && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
58798           && ( imageMipTailSize == rhs.imageMipTailSize )
58799           && ( imageMipTailOffset == rhs.imageMipTailOffset )
58800           && ( imageMipTailStride == rhs.imageMipTailStride );
58801     }
58802 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements58803     bool operator!=( SparseImageMemoryRequirements const& rhs ) const
58804     {
58805       return !operator==( rhs );
58806     }
58807 
58808   public:
58809     vk::SparseImageFormatProperties formatProperties;
58810     uint32_t imageMipTailFirstLod;
58811     vk::DeviceSize imageMipTailSize;
58812     vk::DeviceSize imageMipTailOffset;
58813     vk::DeviceSize imageMipTailStride;
58814   };
58815   static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
58816   static_assert( std::is_standard_layout<SparseImageMemoryRequirements>::value, "struct wrapper is not a standard layout!" );
58817 
58818   namespace layout
58819   {
58820     struct SparseImageMemoryRequirements2
58821     {
58822     protected:
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::layout::SparseImageMemoryRequirements258823       SparseImageMemoryRequirements2( vk::SparseImageMemoryRequirements memoryRequirements_ = vk::SparseImageMemoryRequirements() )
58824         : memoryRequirements( memoryRequirements_ )
58825       {}
58826 
SparseImageMemoryRequirements2VULKAN_HPP_NAMESPACE::layout::SparseImageMemoryRequirements258827       SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs )
58828       {
58829         *reinterpret_cast<VkSparseImageMemoryRequirements2*>(this) = rhs;
58830       }
58831 
operator =VULKAN_HPP_NAMESPACE::layout::SparseImageMemoryRequirements258832       SparseImageMemoryRequirements2& operator=( VkSparseImageMemoryRequirements2 const & rhs )
58833       {
58834         *reinterpret_cast<VkSparseImageMemoryRequirements2*>(this) = rhs;
58835         return *this;
58836       }
58837 
58838     public:
58839       vk::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
58840       void* pNext = nullptr;
58841       vk::SparseImageMemoryRequirements memoryRequirements;
58842     };
58843     static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "layout struct and wrapper have different size!" );
58844   }
58845 
58846   struct SparseImageMemoryRequirements2 : public layout::SparseImageMemoryRequirements2
58847   {
operator VkSparseImageMemoryRequirements2 const&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements258848     operator VkSparseImageMemoryRequirements2 const&() const
58849     {
58850       return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
58851     }
58852 
operator VkSparseImageMemoryRequirements2&VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements258853     operator VkSparseImageMemoryRequirements2 &()
58854     {
58855       return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
58856     }
58857 
operator ==VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements258858     bool operator==( SparseImageMemoryRequirements2 const& rhs ) const
58859     {
58860       return ( sType == rhs.sType )
58861           && ( pNext == rhs.pNext )
58862           && ( memoryRequirements == rhs.memoryRequirements );
58863     }
58864 
operator !=VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements258865     bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const
58866     {
58867       return !operator==( rhs );
58868     }
58869 
58870   private:
58871     using layout::SparseImageMemoryRequirements2::sType;
58872   };
58873   static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
58874   static_assert( std::is_standard_layout<SparseImageMemoryRequirements2>::value, "struct wrapper is not a standard layout!" );
58875 
58876 #ifdef VK_USE_PLATFORM_GGP
58877 
58878   namespace layout
58879   {
58880     struct StreamDescriptorSurfaceCreateInfoGGP
58881     {
58882     protected:
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::layout::StreamDescriptorSurfaceCreateInfoGGP58883       StreamDescriptorSurfaceCreateInfoGGP( vk::StreamDescriptorSurfaceCreateFlagsGGP flags_ = vk::StreamDescriptorSurfaceCreateFlagsGGP(),
58884                                             GgpStreamDescriptor streamDescriptor_ = 0 )
58885         : flags( flags_ )
58886         , streamDescriptor( streamDescriptor_ )
58887       {}
58888 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::layout::StreamDescriptorSurfaceCreateInfoGGP58889       StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
58890       {
58891         *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(this) = rhs;
58892       }
58893 
operator =VULKAN_HPP_NAMESPACE::layout::StreamDescriptorSurfaceCreateInfoGGP58894       StreamDescriptorSurfaceCreateInfoGGP& operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
58895       {
58896         *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(this) = rhs;
58897         return *this;
58898       }
58899 
58900     public:
58901       vk::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
58902       const void* pNext = nullptr;
58903       vk::StreamDescriptorSurfaceCreateFlagsGGP flags;
58904       GgpStreamDescriptor streamDescriptor;
58905     };
58906     static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "layout struct and wrapper have different size!" );
58907   }
58908 
58909   struct StreamDescriptorSurfaceCreateInfoGGP : public layout::StreamDescriptorSurfaceCreateInfoGGP
58910   {
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58911     StreamDescriptorSurfaceCreateInfoGGP( vk::StreamDescriptorSurfaceCreateFlagsGGP flags_ = vk::StreamDescriptorSurfaceCreateFlagsGGP(),
58912                                           GgpStreamDescriptor streamDescriptor_ = 0 )
58913       : layout::StreamDescriptorSurfaceCreateInfoGGP( flags_, streamDescriptor_ )
58914     {}
58915 
StreamDescriptorSurfaceCreateInfoGGPVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58916     StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
58917       : layout::StreamDescriptorSurfaceCreateInfoGGP( rhs )
58918     {}
58919 
operator =VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58920     StreamDescriptorSurfaceCreateInfoGGP& operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
58921     {
58922       *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(this) = rhs;
58923       return *this;
58924     }
58925 
setPNextVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58926     StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ )
58927     {
58928       pNext = pNext_;
58929       return *this;
58930     }
58931 
setFlagsVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58932     StreamDescriptorSurfaceCreateInfoGGP & setFlags( vk::StreamDescriptorSurfaceCreateFlagsGGP flags_ )
58933     {
58934       flags = flags_;
58935       return *this;
58936     }
58937 
setStreamDescriptorVULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58938     StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ )
58939     {
58940       streamDescriptor = streamDescriptor_;
58941       return *this;
58942     }
58943 
operator VkStreamDescriptorSurfaceCreateInfoGGP const&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58944     operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const
58945     {
58946       return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
58947     }
58948 
operator VkStreamDescriptorSurfaceCreateInfoGGP&VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58949     operator VkStreamDescriptorSurfaceCreateInfoGGP &()
58950     {
58951       return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
58952     }
58953 
operator ==VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58954     bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const
58955     {
58956       return ( sType == rhs.sType )
58957           && ( pNext == rhs.pNext )
58958           && ( flags == rhs.flags )
58959           && ( streamDescriptor == rhs.streamDescriptor );
58960     }
58961 
operator !=VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP58962     bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const
58963     {
58964       return !operator==( rhs );
58965     }
58966 
58967   private:
58968     using layout::StreamDescriptorSurfaceCreateInfoGGP::sType;
58969   };
58970   static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
58971   static_assert( std::is_standard_layout<StreamDescriptorSurfaceCreateInfoGGP>::value, "struct wrapper is not a standard layout!" );
58972 #endif /*VK_USE_PLATFORM_GGP*/
58973 
58974   namespace layout
58975   {
58976     struct SubmitInfo
58977     {
58978     protected:
SubmitInfoVULKAN_HPP_NAMESPACE::layout::SubmitInfo58979       SubmitInfo( uint32_t waitSemaphoreCount_ = 0,
58980                   const vk::Semaphore* pWaitSemaphores_ = nullptr,
58981                   const vk::PipelineStageFlags* pWaitDstStageMask_ = nullptr,
58982                   uint32_t commandBufferCount_ = 0,
58983                   const vk::CommandBuffer* pCommandBuffers_ = nullptr,
58984                   uint32_t signalSemaphoreCount_ = 0,
58985                   const vk::Semaphore* pSignalSemaphores_ = nullptr )
58986         : waitSemaphoreCount( waitSemaphoreCount_ )
58987         , pWaitSemaphores( pWaitSemaphores_ )
58988         , pWaitDstStageMask( pWaitDstStageMask_ )
58989         , commandBufferCount( commandBufferCount_ )
58990         , pCommandBuffers( pCommandBuffers_ )
58991         , signalSemaphoreCount( signalSemaphoreCount_ )
58992         , pSignalSemaphores( pSignalSemaphores_ )
58993       {}
58994 
SubmitInfoVULKAN_HPP_NAMESPACE::layout::SubmitInfo58995       SubmitInfo( VkSubmitInfo const & rhs )
58996       {
58997         *reinterpret_cast<VkSubmitInfo*>(this) = rhs;
58998       }
58999 
operator =VULKAN_HPP_NAMESPACE::layout::SubmitInfo59000       SubmitInfo& operator=( VkSubmitInfo const & rhs )
59001       {
59002         *reinterpret_cast<VkSubmitInfo*>(this) = rhs;
59003         return *this;
59004       }
59005 
59006     public:
59007       vk::StructureType sType = StructureType::eSubmitInfo;
59008       const void* pNext = nullptr;
59009       uint32_t waitSemaphoreCount;
59010       const vk::Semaphore* pWaitSemaphores;
59011       const vk::PipelineStageFlags* pWaitDstStageMask;
59012       uint32_t commandBufferCount;
59013       const vk::CommandBuffer* pCommandBuffers;
59014       uint32_t signalSemaphoreCount;
59015       const vk::Semaphore* pSignalSemaphores;
59016     };
59017     static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "layout struct and wrapper have different size!" );
59018   }
59019 
59020   struct SubmitInfo : public layout::SubmitInfo
59021   {
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo59022     SubmitInfo( uint32_t waitSemaphoreCount_ = 0,
59023                 const vk::Semaphore* pWaitSemaphores_ = nullptr,
59024                 const vk::PipelineStageFlags* pWaitDstStageMask_ = nullptr,
59025                 uint32_t commandBufferCount_ = 0,
59026                 const vk::CommandBuffer* pCommandBuffers_ = nullptr,
59027                 uint32_t signalSemaphoreCount_ = 0,
59028                 const vk::Semaphore* pSignalSemaphores_ = nullptr )
59029       : layout::SubmitInfo( waitSemaphoreCount_, pWaitSemaphores_, pWaitDstStageMask_, commandBufferCount_, pCommandBuffers_, signalSemaphoreCount_, pSignalSemaphores_ )
59030     {}
59031 
SubmitInfoVULKAN_HPP_NAMESPACE::SubmitInfo59032     SubmitInfo( VkSubmitInfo const & rhs )
59033       : layout::SubmitInfo( rhs )
59034     {}
59035 
operator =VULKAN_HPP_NAMESPACE::SubmitInfo59036     SubmitInfo& operator=( VkSubmitInfo const & rhs )
59037     {
59038       *reinterpret_cast<VkSubmitInfo*>(this) = rhs;
59039       return *this;
59040     }
59041 
setPNextVULKAN_HPP_NAMESPACE::SubmitInfo59042     SubmitInfo & setPNext( const void* pNext_ )
59043     {
59044       pNext = pNext_;
59045       return *this;
59046     }
59047 
setWaitSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo59048     SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
59049     {
59050       waitSemaphoreCount = waitSemaphoreCount_;
59051       return *this;
59052     }
59053 
setPWaitSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo59054     SubmitInfo & setPWaitSemaphores( const vk::Semaphore* pWaitSemaphores_ )
59055     {
59056       pWaitSemaphores = pWaitSemaphores_;
59057       return *this;
59058     }
59059 
setPWaitDstStageMaskVULKAN_HPP_NAMESPACE::SubmitInfo59060     SubmitInfo & setPWaitDstStageMask( const vk::PipelineStageFlags* pWaitDstStageMask_ )
59061     {
59062       pWaitDstStageMask = pWaitDstStageMask_;
59063       return *this;
59064     }
59065 
setCommandBufferCountVULKAN_HPP_NAMESPACE::SubmitInfo59066     SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
59067     {
59068       commandBufferCount = commandBufferCount_;
59069       return *this;
59070     }
59071 
setPCommandBuffersVULKAN_HPP_NAMESPACE::SubmitInfo59072     SubmitInfo & setPCommandBuffers( const vk::CommandBuffer* pCommandBuffers_ )
59073     {
59074       pCommandBuffers = pCommandBuffers_;
59075       return *this;
59076     }
59077 
setSignalSemaphoreCountVULKAN_HPP_NAMESPACE::SubmitInfo59078     SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
59079     {
59080       signalSemaphoreCount = signalSemaphoreCount_;
59081       return *this;
59082     }
59083 
setPSignalSemaphoresVULKAN_HPP_NAMESPACE::SubmitInfo59084     SubmitInfo & setPSignalSemaphores( const vk::Semaphore* pSignalSemaphores_ )
59085     {
59086       pSignalSemaphores = pSignalSemaphores_;
59087       return *this;
59088     }
59089 
operator VkSubmitInfo const&VULKAN_HPP_NAMESPACE::SubmitInfo59090     operator VkSubmitInfo const&() const
59091     {
59092       return *reinterpret_cast<const VkSubmitInfo*>( this );
59093     }
59094 
operator VkSubmitInfo&VULKAN_HPP_NAMESPACE::SubmitInfo59095     operator VkSubmitInfo &()
59096     {
59097       return *reinterpret_cast<VkSubmitInfo*>( this );
59098     }
59099 
operator ==VULKAN_HPP_NAMESPACE::SubmitInfo59100     bool operator==( SubmitInfo const& rhs ) const
59101     {
59102       return ( sType == rhs.sType )
59103           && ( pNext == rhs.pNext )
59104           && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
59105           && ( pWaitSemaphores == rhs.pWaitSemaphores )
59106           && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
59107           && ( commandBufferCount == rhs.commandBufferCount )
59108           && ( pCommandBuffers == rhs.pCommandBuffers )
59109           && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
59110           && ( pSignalSemaphores == rhs.pSignalSemaphores );
59111     }
59112 
operator !=VULKAN_HPP_NAMESPACE::SubmitInfo59113     bool operator!=( SubmitInfo const& rhs ) const
59114     {
59115       return !operator==( rhs );
59116     }
59117 
59118   private:
59119     using layout::SubmitInfo::sType;
59120   };
59121   static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
59122   static_assert( std::is_standard_layout<SubmitInfo>::value, "struct wrapper is not a standard layout!" );
59123 
59124   namespace layout
59125   {
59126     struct SubpassBeginInfoKHR
59127     {
59128     protected:
SubpassBeginInfoKHRVULKAN_HPP_NAMESPACE::layout::SubpassBeginInfoKHR59129       SubpassBeginInfoKHR( vk::SubpassContents contents_ = vk::SubpassContents::eInline )
59130         : contents( contents_ )
59131       {}
59132 
SubpassBeginInfoKHRVULKAN_HPP_NAMESPACE::layout::SubpassBeginInfoKHR59133       SubpassBeginInfoKHR( VkSubpassBeginInfoKHR const & rhs )
59134       {
59135         *reinterpret_cast<VkSubpassBeginInfoKHR*>(this) = rhs;
59136       }
59137 
operator =VULKAN_HPP_NAMESPACE::layout::SubpassBeginInfoKHR59138       SubpassBeginInfoKHR& operator=( VkSubpassBeginInfoKHR const & rhs )
59139       {
59140         *reinterpret_cast<VkSubpassBeginInfoKHR*>(this) = rhs;
59141         return *this;
59142       }
59143 
59144     public:
59145       vk::StructureType sType = StructureType::eSubpassBeginInfoKHR;
59146       const void* pNext = nullptr;
59147       vk::SubpassContents contents;
59148     };
59149     static_assert( sizeof( SubpassBeginInfoKHR ) == sizeof( VkSubpassBeginInfoKHR ), "layout struct and wrapper have different size!" );
59150   }
59151 
59152   struct SubpassBeginInfoKHR : public layout::SubpassBeginInfoKHR
59153   {
SubpassBeginInfoKHRVULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59154     SubpassBeginInfoKHR( vk::SubpassContents contents_ = vk::SubpassContents::eInline )
59155       : layout::SubpassBeginInfoKHR( contents_ )
59156     {}
59157 
SubpassBeginInfoKHRVULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59158     SubpassBeginInfoKHR( VkSubpassBeginInfoKHR const & rhs )
59159       : layout::SubpassBeginInfoKHR( rhs )
59160     {}
59161 
operator =VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59162     SubpassBeginInfoKHR& operator=( VkSubpassBeginInfoKHR const & rhs )
59163     {
59164       *reinterpret_cast<VkSubpassBeginInfoKHR*>(this) = rhs;
59165       return *this;
59166     }
59167 
setPNextVULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59168     SubpassBeginInfoKHR & setPNext( const void* pNext_ )
59169     {
59170       pNext = pNext_;
59171       return *this;
59172     }
59173 
setContentsVULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59174     SubpassBeginInfoKHR & setContents( vk::SubpassContents contents_ )
59175     {
59176       contents = contents_;
59177       return *this;
59178     }
59179 
operator VkSubpassBeginInfoKHR const&VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59180     operator VkSubpassBeginInfoKHR const&() const
59181     {
59182       return *reinterpret_cast<const VkSubpassBeginInfoKHR*>( this );
59183     }
59184 
operator VkSubpassBeginInfoKHR&VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59185     operator VkSubpassBeginInfoKHR &()
59186     {
59187       return *reinterpret_cast<VkSubpassBeginInfoKHR*>( this );
59188     }
59189 
operator ==VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59190     bool operator==( SubpassBeginInfoKHR const& rhs ) const
59191     {
59192       return ( sType == rhs.sType )
59193           && ( pNext == rhs.pNext )
59194           && ( contents == rhs.contents );
59195     }
59196 
operator !=VULKAN_HPP_NAMESPACE::SubpassBeginInfoKHR59197     bool operator!=( SubpassBeginInfoKHR const& rhs ) const
59198     {
59199       return !operator==( rhs );
59200     }
59201 
59202   private:
59203     using layout::SubpassBeginInfoKHR::sType;
59204   };
59205   static_assert( sizeof( SubpassBeginInfoKHR ) == sizeof( VkSubpassBeginInfoKHR ), "struct and wrapper have different size!" );
59206   static_assert( std::is_standard_layout<SubpassBeginInfoKHR>::value, "struct wrapper is not a standard layout!" );
59207 
59208   namespace layout
59209   {
59210     struct SubpassDescriptionDepthStencilResolveKHR
59211     {
59212     protected:
SubpassDescriptionDepthStencilResolveKHRVULKAN_HPP_NAMESPACE::layout::SubpassDescriptionDepthStencilResolveKHR59213       SubpassDescriptionDepthStencilResolveKHR( vk::ResolveModeFlagBitsKHR depthResolveMode_ = vk::ResolveModeFlagBitsKHR::eNone,
59214                                                 vk::ResolveModeFlagBitsKHR stencilResolveMode_ = vk::ResolveModeFlagBitsKHR::eNone,
59215                                                 const vk::AttachmentReference2KHR* pDepthStencilResolveAttachment_ = nullptr )
59216         : depthResolveMode( depthResolveMode_ )
59217         , stencilResolveMode( stencilResolveMode_ )
59218         , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
59219       {}
59220 
SubpassDescriptionDepthStencilResolveKHRVULKAN_HPP_NAMESPACE::layout::SubpassDescriptionDepthStencilResolveKHR59221       SubpassDescriptionDepthStencilResolveKHR( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
59222       {
59223         *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>(this) = rhs;
59224       }
59225 
operator =VULKAN_HPP_NAMESPACE::layout::SubpassDescriptionDepthStencilResolveKHR59226       SubpassDescriptionDepthStencilResolveKHR& operator=( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
59227       {
59228         *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>(this) = rhs;
59229         return *this;
59230       }
59231 
59232     public:
59233       vk::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolveKHR;
59234       const void* pNext = nullptr;
59235       vk::ResolveModeFlagBitsKHR depthResolveMode;
59236       vk::ResolveModeFlagBitsKHR stencilResolveMode;
59237       const vk::AttachmentReference2KHR* pDepthStencilResolveAttachment;
59238     };
59239     static_assert( sizeof( SubpassDescriptionDepthStencilResolveKHR ) == sizeof( VkSubpassDescriptionDepthStencilResolveKHR ), "layout struct and wrapper have different size!" );
59240   }
59241 
59242   struct SubpassDescriptionDepthStencilResolveKHR : public layout::SubpassDescriptionDepthStencilResolveKHR
59243   {
SubpassDescriptionDepthStencilResolveKHRVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59244     SubpassDescriptionDepthStencilResolveKHR( vk::ResolveModeFlagBitsKHR depthResolveMode_ = vk::ResolveModeFlagBitsKHR::eNone,
59245                                               vk::ResolveModeFlagBitsKHR stencilResolveMode_ = vk::ResolveModeFlagBitsKHR::eNone,
59246                                               const vk::AttachmentReference2KHR* pDepthStencilResolveAttachment_ = nullptr )
59247       : layout::SubpassDescriptionDepthStencilResolveKHR( depthResolveMode_, stencilResolveMode_, pDepthStencilResolveAttachment_ )
59248     {}
59249 
SubpassDescriptionDepthStencilResolveKHRVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59250     SubpassDescriptionDepthStencilResolveKHR( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
59251       : layout::SubpassDescriptionDepthStencilResolveKHR( rhs )
59252     {}
59253 
operator =VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59254     SubpassDescriptionDepthStencilResolveKHR& operator=( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
59255     {
59256       *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>(this) = rhs;
59257       return *this;
59258     }
59259 
setPNextVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59260     SubpassDescriptionDepthStencilResolveKHR & setPNext( const void* pNext_ )
59261     {
59262       pNext = pNext_;
59263       return *this;
59264     }
59265 
setDepthResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59266     SubpassDescriptionDepthStencilResolveKHR & setDepthResolveMode( vk::ResolveModeFlagBitsKHR depthResolveMode_ )
59267     {
59268       depthResolveMode = depthResolveMode_;
59269       return *this;
59270     }
59271 
setStencilResolveModeVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59272     SubpassDescriptionDepthStencilResolveKHR & setStencilResolveMode( vk::ResolveModeFlagBitsKHR stencilResolveMode_ )
59273     {
59274       stencilResolveMode = stencilResolveMode_;
59275       return *this;
59276     }
59277 
setPDepthStencilResolveAttachmentVULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59278     SubpassDescriptionDepthStencilResolveKHR & setPDepthStencilResolveAttachment( const vk::AttachmentReference2KHR* pDepthStencilResolveAttachment_ )
59279     {
59280       pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
59281       return *this;
59282     }
59283 
operator VkSubpassDescriptionDepthStencilResolveKHR const&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59284     operator VkSubpassDescriptionDepthStencilResolveKHR const&() const
59285     {
59286       return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolveKHR*>( this );
59287     }
59288 
operator VkSubpassDescriptionDepthStencilResolveKHR&VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59289     operator VkSubpassDescriptionDepthStencilResolveKHR &()
59290     {
59291       return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>( this );
59292     }
59293 
operator ==VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59294     bool operator==( SubpassDescriptionDepthStencilResolveKHR const& rhs ) const
59295     {
59296       return ( sType == rhs.sType )
59297           && ( pNext == rhs.pNext )
59298           && ( depthResolveMode == rhs.depthResolveMode )
59299           && ( stencilResolveMode == rhs.stencilResolveMode )
59300           && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
59301     }
59302 
operator !=VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolveKHR59303     bool operator!=( SubpassDescriptionDepthStencilResolveKHR const& rhs ) const
59304     {
59305       return !operator==( rhs );
59306     }
59307 
59308   private:
59309     using layout::SubpassDescriptionDepthStencilResolveKHR::sType;
59310   };
59311   static_assert( sizeof( SubpassDescriptionDepthStencilResolveKHR ) == sizeof( VkSubpassDescriptionDepthStencilResolveKHR ), "struct and wrapper have different size!" );
59312   static_assert( std::is_standard_layout<SubpassDescriptionDepthStencilResolveKHR>::value, "struct wrapper is not a standard layout!" );
59313 
59314   namespace layout
59315   {
59316     struct SubpassEndInfoKHR
59317     {
59318     protected:
SubpassEndInfoKHRVULKAN_HPP_NAMESPACE::layout::SubpassEndInfoKHR59319       SubpassEndInfoKHR()
59320 
59321       {}
59322 
SubpassEndInfoKHRVULKAN_HPP_NAMESPACE::layout::SubpassEndInfoKHR59323       SubpassEndInfoKHR( VkSubpassEndInfoKHR const & rhs )
59324       {
59325         *reinterpret_cast<VkSubpassEndInfoKHR*>(this) = rhs;
59326       }
59327 
operator =VULKAN_HPP_NAMESPACE::layout::SubpassEndInfoKHR59328       SubpassEndInfoKHR& operator=( VkSubpassEndInfoKHR const & rhs )
59329       {
59330         *reinterpret_cast<VkSubpassEndInfoKHR*>(this) = rhs;
59331         return *this;
59332       }
59333 
59334     public:
59335       vk::StructureType sType = StructureType::eSubpassEndInfoKHR;
59336       const void* pNext = nullptr;
59337     };
59338     static_assert( sizeof( SubpassEndInfoKHR ) == sizeof( VkSubpassEndInfoKHR ), "layout struct and wrapper have different size!" );
59339   }
59340 
59341   struct SubpassEndInfoKHR : public layout::SubpassEndInfoKHR
59342   {
SubpassEndInfoKHRVULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59343     SubpassEndInfoKHR()
59344 
59345       : layout::SubpassEndInfoKHR(  )
59346     {}
59347 
SubpassEndInfoKHRVULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59348     SubpassEndInfoKHR( VkSubpassEndInfoKHR const & rhs )
59349       : layout::SubpassEndInfoKHR( rhs )
59350     {}
59351 
operator =VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59352     SubpassEndInfoKHR& operator=( VkSubpassEndInfoKHR const & rhs )
59353     {
59354       *reinterpret_cast<VkSubpassEndInfoKHR*>(this) = rhs;
59355       return *this;
59356     }
59357 
setPNextVULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59358     SubpassEndInfoKHR & setPNext( const void* pNext_ )
59359     {
59360       pNext = pNext_;
59361       return *this;
59362     }
59363 
operator VkSubpassEndInfoKHR const&VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59364     operator VkSubpassEndInfoKHR const&() const
59365     {
59366       return *reinterpret_cast<const VkSubpassEndInfoKHR*>( this );
59367     }
59368 
operator VkSubpassEndInfoKHR&VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59369     operator VkSubpassEndInfoKHR &()
59370     {
59371       return *reinterpret_cast<VkSubpassEndInfoKHR*>( this );
59372     }
59373 
operator ==VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59374     bool operator==( SubpassEndInfoKHR const& rhs ) const
59375     {
59376       return ( sType == rhs.sType )
59377           && ( pNext == rhs.pNext );
59378     }
59379 
operator !=VULKAN_HPP_NAMESPACE::SubpassEndInfoKHR59380     bool operator!=( SubpassEndInfoKHR const& rhs ) const
59381     {
59382       return !operator==( rhs );
59383     }
59384 
59385   private:
59386     using layout::SubpassEndInfoKHR::sType;
59387   };
59388   static_assert( sizeof( SubpassEndInfoKHR ) == sizeof( VkSubpassEndInfoKHR ), "struct and wrapper have different size!" );
59389   static_assert( std::is_standard_layout<SubpassEndInfoKHR>::value, "struct wrapper is not a standard layout!" );
59390 
59391   namespace layout
59392   {
59393     struct SurfaceCapabilities2EXT
59394     {
59395     protected:
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2EXT59396       SurfaceCapabilities2EXT( uint32_t minImageCount_ = 0,
59397                                uint32_t maxImageCount_ = 0,
59398                                vk::Extent2D currentExtent_ = vk::Extent2D(),
59399                                vk::Extent2D minImageExtent_ = vk::Extent2D(),
59400                                vk::Extent2D maxImageExtent_ = vk::Extent2D(),
59401                                uint32_t maxImageArrayLayers_ = 0,
59402                                vk::SurfaceTransformFlagsKHR supportedTransforms_ = vk::SurfaceTransformFlagsKHR(),
59403                                vk::SurfaceTransformFlagBitsKHR currentTransform_ = vk::SurfaceTransformFlagBitsKHR::eIdentity,
59404                                vk::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = vk::CompositeAlphaFlagsKHR(),
59405                                vk::ImageUsageFlags supportedUsageFlags_ = vk::ImageUsageFlags(),
59406                                vk::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = vk::SurfaceCounterFlagsEXT() )
59407         : minImageCount( minImageCount_ )
59408         , maxImageCount( maxImageCount_ )
59409         , currentExtent( currentExtent_ )
59410         , minImageExtent( minImageExtent_ )
59411         , maxImageExtent( maxImageExtent_ )
59412         , maxImageArrayLayers( maxImageArrayLayers_ )
59413         , supportedTransforms( supportedTransforms_ )
59414         , currentTransform( currentTransform_ )
59415         , supportedCompositeAlpha( supportedCompositeAlpha_ )
59416         , supportedUsageFlags( supportedUsageFlags_ )
59417         , supportedSurfaceCounters( supportedSurfaceCounters_ )
59418       {}
59419 
SurfaceCapabilities2EXTVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2EXT59420       SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs )
59421       {
59422         *reinterpret_cast<VkSurfaceCapabilities2EXT*>(this) = rhs;
59423       }
59424 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2EXT59425       SurfaceCapabilities2EXT& operator=( VkSurfaceCapabilities2EXT const & rhs )
59426       {
59427         *reinterpret_cast<VkSurfaceCapabilities2EXT*>(this) = rhs;
59428         return *this;
59429       }
59430 
59431     public:
59432       vk::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
59433       void* pNext = nullptr;
59434       uint32_t minImageCount;
59435       uint32_t maxImageCount;
59436       vk::Extent2D currentExtent;
59437       vk::Extent2D minImageExtent;
59438       vk::Extent2D maxImageExtent;
59439       uint32_t maxImageArrayLayers;
59440       vk::SurfaceTransformFlagsKHR supportedTransforms;
59441       vk::SurfaceTransformFlagBitsKHR currentTransform;
59442       vk::CompositeAlphaFlagsKHR supportedCompositeAlpha;
59443       vk::ImageUsageFlags supportedUsageFlags;
59444       vk::SurfaceCounterFlagsEXT supportedSurfaceCounters;
59445     };
59446     static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "layout struct and wrapper have different size!" );
59447   }
59448 
59449   struct SurfaceCapabilities2EXT : public layout::SurfaceCapabilities2EXT
59450   {
operator VkSurfaceCapabilities2EXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT59451     operator VkSurfaceCapabilities2EXT const&() const
59452     {
59453       return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
59454     }
59455 
operator VkSurfaceCapabilities2EXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT59456     operator VkSurfaceCapabilities2EXT &()
59457     {
59458       return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
59459     }
59460 
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT59461     bool operator==( SurfaceCapabilities2EXT const& rhs ) const
59462     {
59463       return ( sType == rhs.sType )
59464           && ( pNext == rhs.pNext )
59465           && ( minImageCount == rhs.minImageCount )
59466           && ( maxImageCount == rhs.maxImageCount )
59467           && ( currentExtent == rhs.currentExtent )
59468           && ( minImageExtent == rhs.minImageExtent )
59469           && ( maxImageExtent == rhs.maxImageExtent )
59470           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
59471           && ( supportedTransforms == rhs.supportedTransforms )
59472           && ( currentTransform == rhs.currentTransform )
59473           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
59474           && ( supportedUsageFlags == rhs.supportedUsageFlags )
59475           && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
59476     }
59477 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT59478     bool operator!=( SurfaceCapabilities2EXT const& rhs ) const
59479     {
59480       return !operator==( rhs );
59481     }
59482 
59483   private:
59484     using layout::SurfaceCapabilities2EXT::sType;
59485   };
59486   static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
59487   static_assert( std::is_standard_layout<SurfaceCapabilities2EXT>::value, "struct wrapper is not a standard layout!" );
59488 
59489   struct SurfaceCapabilitiesKHR
59490   {
operator VkSurfaceCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR59491     operator VkSurfaceCapabilitiesKHR const&() const
59492     {
59493       return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
59494     }
59495 
operator VkSurfaceCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR59496     operator VkSurfaceCapabilitiesKHR &()
59497     {
59498       return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
59499     }
59500 
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR59501     bool operator==( SurfaceCapabilitiesKHR const& rhs ) const
59502     {
59503       return ( minImageCount == rhs.minImageCount )
59504           && ( maxImageCount == rhs.maxImageCount )
59505           && ( currentExtent == rhs.currentExtent )
59506           && ( minImageExtent == rhs.minImageExtent )
59507           && ( maxImageExtent == rhs.maxImageExtent )
59508           && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
59509           && ( supportedTransforms == rhs.supportedTransforms )
59510           && ( currentTransform == rhs.currentTransform )
59511           && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
59512           && ( supportedUsageFlags == rhs.supportedUsageFlags );
59513     }
59514 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR59515     bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const
59516     {
59517       return !operator==( rhs );
59518     }
59519 
59520   public:
59521     uint32_t minImageCount;
59522     uint32_t maxImageCount;
59523     vk::Extent2D currentExtent;
59524     vk::Extent2D minImageExtent;
59525     vk::Extent2D maxImageExtent;
59526     uint32_t maxImageArrayLayers;
59527     vk::SurfaceTransformFlagsKHR supportedTransforms;
59528     vk::SurfaceTransformFlagBitsKHR currentTransform;
59529     vk::CompositeAlphaFlagsKHR supportedCompositeAlpha;
59530     vk::ImageUsageFlags supportedUsageFlags;
59531   };
59532   static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
59533   static_assert( std::is_standard_layout<SurfaceCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
59534 
59535   namespace layout
59536   {
59537     struct SurfaceCapabilities2KHR
59538     {
59539     protected:
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2KHR59540       SurfaceCapabilities2KHR( vk::SurfaceCapabilitiesKHR surfaceCapabilities_ = vk::SurfaceCapabilitiesKHR() )
59541         : surfaceCapabilities( surfaceCapabilities_ )
59542       {}
59543 
SurfaceCapabilities2KHRVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2KHR59544       SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs )
59545       {
59546         *reinterpret_cast<VkSurfaceCapabilities2KHR*>(this) = rhs;
59547       }
59548 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceCapabilities2KHR59549       SurfaceCapabilities2KHR& operator=( VkSurfaceCapabilities2KHR const & rhs )
59550       {
59551         *reinterpret_cast<VkSurfaceCapabilities2KHR*>(this) = rhs;
59552         return *this;
59553       }
59554 
59555     public:
59556       vk::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
59557       void* pNext = nullptr;
59558       vk::SurfaceCapabilitiesKHR surfaceCapabilities;
59559     };
59560     static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "layout struct and wrapper have different size!" );
59561   }
59562 
59563   struct SurfaceCapabilities2KHR : public layout::SurfaceCapabilities2KHR
59564   {
operator VkSurfaceCapabilities2KHR const&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR59565     operator VkSurfaceCapabilities2KHR const&() const
59566     {
59567       return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
59568     }
59569 
operator VkSurfaceCapabilities2KHR&VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR59570     operator VkSurfaceCapabilities2KHR &()
59571     {
59572       return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
59573     }
59574 
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR59575     bool operator==( SurfaceCapabilities2KHR const& rhs ) const
59576     {
59577       return ( sType == rhs.sType )
59578           && ( pNext == rhs.pNext )
59579           && ( surfaceCapabilities == rhs.surfaceCapabilities );
59580     }
59581 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR59582     bool operator!=( SurfaceCapabilities2KHR const& rhs ) const
59583     {
59584       return !operator==( rhs );
59585     }
59586 
59587   private:
59588     using layout::SurfaceCapabilities2KHR::sType;
59589   };
59590   static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
59591   static_assert( std::is_standard_layout<SurfaceCapabilities2KHR>::value, "struct wrapper is not a standard layout!" );
59592 
59593 #ifdef VK_USE_PLATFORM_WIN32_KHR
59594 
59595   namespace layout
59596   {
59597     struct SurfaceCapabilitiesFullScreenExclusiveEXT
59598     {
59599     protected:
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilitiesFullScreenExclusiveEXT59600       SurfaceCapabilitiesFullScreenExclusiveEXT( vk::Bool32 fullScreenExclusiveSupported_ = 0 )
59601         : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
59602       {}
59603 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::layout::SurfaceCapabilitiesFullScreenExclusiveEXT59604       SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
59605       {
59606         *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(this) = rhs;
59607       }
59608 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceCapabilitiesFullScreenExclusiveEXT59609       SurfaceCapabilitiesFullScreenExclusiveEXT& operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
59610       {
59611         *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(this) = rhs;
59612         return *this;
59613       }
59614 
59615     public:
59616       vk::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
59617       void* pNext = nullptr;
59618       vk::Bool32 fullScreenExclusiveSupported;
59619     };
59620     static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "layout struct and wrapper have different size!" );
59621   }
59622 
59623   struct SurfaceCapabilitiesFullScreenExclusiveEXT : public layout::SurfaceCapabilitiesFullScreenExclusiveEXT
59624   {
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59625     SurfaceCapabilitiesFullScreenExclusiveEXT( vk::Bool32 fullScreenExclusiveSupported_ = 0 )
59626       : layout::SurfaceCapabilitiesFullScreenExclusiveEXT( fullScreenExclusiveSupported_ )
59627     {}
59628 
SurfaceCapabilitiesFullScreenExclusiveEXTVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59629     SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
59630       : layout::SurfaceCapabilitiesFullScreenExclusiveEXT( rhs )
59631     {}
59632 
operator =VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59633     SurfaceCapabilitiesFullScreenExclusiveEXT& operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
59634     {
59635       *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(this) = rhs;
59636       return *this;
59637     }
59638 
setPNextVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59639     SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ )
59640     {
59641       pNext = pNext_;
59642       return *this;
59643     }
59644 
setFullScreenExclusiveSupportedVULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59645     SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( vk::Bool32 fullScreenExclusiveSupported_ )
59646     {
59647       fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
59648       return *this;
59649     }
59650 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59651     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const
59652     {
59653       return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
59654     }
59655 
operator VkSurfaceCapabilitiesFullScreenExclusiveEXT&VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59656     operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &()
59657     {
59658       return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
59659     }
59660 
operator ==VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59661     bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const
59662     {
59663       return ( sType == rhs.sType )
59664           && ( pNext == rhs.pNext )
59665           && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
59666     }
59667 
operator !=VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT59668     bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const
59669     {
59670       return !operator==( rhs );
59671     }
59672 
59673   private:
59674     using layout::SurfaceCapabilitiesFullScreenExclusiveEXT::sType;
59675   };
59676   static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
59677   static_assert( std::is_standard_layout<SurfaceCapabilitiesFullScreenExclusiveEXT>::value, "struct wrapper is not a standard layout!" );
59678 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
59679 
59680   struct SurfaceFormatKHR
59681   {
operator VkSurfaceFormatKHR const&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR59682     operator VkSurfaceFormatKHR const&() const
59683     {
59684       return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
59685     }
59686 
operator VkSurfaceFormatKHR&VULKAN_HPP_NAMESPACE::SurfaceFormatKHR59687     operator VkSurfaceFormatKHR &()
59688     {
59689       return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
59690     }
59691 
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormatKHR59692     bool operator==( SurfaceFormatKHR const& rhs ) const
59693     {
59694       return ( format == rhs.format )
59695           && ( colorSpace == rhs.colorSpace );
59696     }
59697 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormatKHR59698     bool operator!=( SurfaceFormatKHR const& rhs ) const
59699     {
59700       return !operator==( rhs );
59701     }
59702 
59703   public:
59704     vk::Format format;
59705     vk::ColorSpaceKHR colorSpace;
59706   };
59707   static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
59708   static_assert( std::is_standard_layout<SurfaceFormatKHR>::value, "struct wrapper is not a standard layout!" );
59709 
59710   namespace layout
59711   {
59712     struct SurfaceFormat2KHR
59713     {
59714     protected:
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::layout::SurfaceFormat2KHR59715       SurfaceFormat2KHR( vk::SurfaceFormatKHR surfaceFormat_ = vk::SurfaceFormatKHR() )
59716         : surfaceFormat( surfaceFormat_ )
59717       {}
59718 
SurfaceFormat2KHRVULKAN_HPP_NAMESPACE::layout::SurfaceFormat2KHR59719       SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs )
59720       {
59721         *reinterpret_cast<VkSurfaceFormat2KHR*>(this) = rhs;
59722       }
59723 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceFormat2KHR59724       SurfaceFormat2KHR& operator=( VkSurfaceFormat2KHR const & rhs )
59725       {
59726         *reinterpret_cast<VkSurfaceFormat2KHR*>(this) = rhs;
59727         return *this;
59728       }
59729 
59730     public:
59731       vk::StructureType sType = StructureType::eSurfaceFormat2KHR;
59732       void* pNext = nullptr;
59733       vk::SurfaceFormatKHR surfaceFormat;
59734     };
59735     static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "layout struct and wrapper have different size!" );
59736   }
59737 
59738   struct SurfaceFormat2KHR : public layout::SurfaceFormat2KHR
59739   {
operator VkSurfaceFormat2KHR const&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR59740     operator VkSurfaceFormat2KHR const&() const
59741     {
59742       return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
59743     }
59744 
operator VkSurfaceFormat2KHR&VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR59745     operator VkSurfaceFormat2KHR &()
59746     {
59747       return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
59748     }
59749 
operator ==VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR59750     bool operator==( SurfaceFormat2KHR const& rhs ) const
59751     {
59752       return ( sType == rhs.sType )
59753           && ( pNext == rhs.pNext )
59754           && ( surfaceFormat == rhs.surfaceFormat );
59755     }
59756 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR59757     bool operator!=( SurfaceFormat2KHR const& rhs ) const
59758     {
59759       return !operator==( rhs );
59760     }
59761 
59762   private:
59763     using layout::SurfaceFormat2KHR::sType;
59764   };
59765   static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
59766   static_assert( std::is_standard_layout<SurfaceFormat2KHR>::value, "struct wrapper is not a standard layout!" );
59767 
59768 #ifdef VK_USE_PLATFORM_WIN32_KHR
59769 
59770   namespace layout
59771   {
59772     struct SurfaceFullScreenExclusiveInfoEXT
59773     {
59774     protected:
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveInfoEXT59775       SurfaceFullScreenExclusiveInfoEXT( vk::FullScreenExclusiveEXT fullScreenExclusive_ = vk::FullScreenExclusiveEXT::eDefault )
59776         : fullScreenExclusive( fullScreenExclusive_ )
59777       {}
59778 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveInfoEXT59779       SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
59780       {
59781         *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(this) = rhs;
59782       }
59783 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveInfoEXT59784       SurfaceFullScreenExclusiveInfoEXT& operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
59785       {
59786         *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(this) = rhs;
59787         return *this;
59788       }
59789 
59790     public:
59791       vk::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
59792       void* pNext = nullptr;
59793       vk::FullScreenExclusiveEXT fullScreenExclusive;
59794     };
59795     static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "layout struct and wrapper have different size!" );
59796   }
59797 
59798   struct SurfaceFullScreenExclusiveInfoEXT : public layout::SurfaceFullScreenExclusiveInfoEXT
59799   {
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59800     SurfaceFullScreenExclusiveInfoEXT( vk::FullScreenExclusiveEXT fullScreenExclusive_ = vk::FullScreenExclusiveEXT::eDefault )
59801       : layout::SurfaceFullScreenExclusiveInfoEXT( fullScreenExclusive_ )
59802     {}
59803 
SurfaceFullScreenExclusiveInfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59804     SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
59805       : layout::SurfaceFullScreenExclusiveInfoEXT( rhs )
59806     {}
59807 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59808     SurfaceFullScreenExclusiveInfoEXT& operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
59809     {
59810       *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(this) = rhs;
59811       return *this;
59812     }
59813 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59814     SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ )
59815     {
59816       pNext = pNext_;
59817       return *this;
59818     }
59819 
setFullScreenExclusiveVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59820     SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( vk::FullScreenExclusiveEXT fullScreenExclusive_ )
59821     {
59822       fullScreenExclusive = fullScreenExclusive_;
59823       return *this;
59824     }
59825 
operator VkSurfaceFullScreenExclusiveInfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59826     operator VkSurfaceFullScreenExclusiveInfoEXT const&() const
59827     {
59828       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
59829     }
59830 
operator VkSurfaceFullScreenExclusiveInfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59831     operator VkSurfaceFullScreenExclusiveInfoEXT &()
59832     {
59833       return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
59834     }
59835 
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59836     bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const
59837     {
59838       return ( sType == rhs.sType )
59839           && ( pNext == rhs.pNext )
59840           && ( fullScreenExclusive == rhs.fullScreenExclusive );
59841     }
59842 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT59843     bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const
59844     {
59845       return !operator==( rhs );
59846     }
59847 
59848   private:
59849     using layout::SurfaceFullScreenExclusiveInfoEXT::sType;
59850   };
59851   static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
59852   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveInfoEXT>::value, "struct wrapper is not a standard layout!" );
59853 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
59854 
59855 #ifdef VK_USE_PLATFORM_WIN32_KHR
59856 
59857   namespace layout
59858   {
59859     struct SurfaceFullScreenExclusiveWin32InfoEXT
59860     {
59861     protected:
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveWin32InfoEXT59862       SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = 0 )
59863         : hmonitor( hmonitor_ )
59864       {}
59865 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveWin32InfoEXT59866       SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
59867       {
59868         *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(this) = rhs;
59869       }
59870 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceFullScreenExclusiveWin32InfoEXT59871       SurfaceFullScreenExclusiveWin32InfoEXT& operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
59872       {
59873         *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(this) = rhs;
59874         return *this;
59875       }
59876 
59877     public:
59878       vk::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
59879       const void* pNext = nullptr;
59880       HMONITOR hmonitor;
59881     };
59882     static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "layout struct and wrapper have different size!" );
59883   }
59884 
59885   struct SurfaceFullScreenExclusiveWin32InfoEXT : public layout::SurfaceFullScreenExclusiveWin32InfoEXT
59886   {
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59887     SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = 0 )
59888       : layout::SurfaceFullScreenExclusiveWin32InfoEXT( hmonitor_ )
59889     {}
59890 
SurfaceFullScreenExclusiveWin32InfoEXTVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59891     SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
59892       : layout::SurfaceFullScreenExclusiveWin32InfoEXT( rhs )
59893     {}
59894 
operator =VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59895     SurfaceFullScreenExclusiveWin32InfoEXT& operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
59896     {
59897       *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(this) = rhs;
59898       return *this;
59899     }
59900 
setPNextVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59901     SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ )
59902     {
59903       pNext = pNext_;
59904       return *this;
59905     }
59906 
setHmonitorVULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59907     SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ )
59908     {
59909       hmonitor = hmonitor_;
59910       return *this;
59911     }
59912 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59913     operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const
59914     {
59915       return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
59916     }
59917 
operator VkSurfaceFullScreenExclusiveWin32InfoEXT&VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59918     operator VkSurfaceFullScreenExclusiveWin32InfoEXT &()
59919     {
59920       return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
59921     }
59922 
operator ==VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59923     bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const
59924     {
59925       return ( sType == rhs.sType )
59926           && ( pNext == rhs.pNext )
59927           && ( hmonitor == rhs.hmonitor );
59928     }
59929 
operator !=VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT59930     bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const
59931     {
59932       return !operator==( rhs );
59933     }
59934 
59935   private:
59936     using layout::SurfaceFullScreenExclusiveWin32InfoEXT::sType;
59937   };
59938   static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
59939   static_assert( std::is_standard_layout<SurfaceFullScreenExclusiveWin32InfoEXT>::value, "struct wrapper is not a standard layout!" );
59940 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
59941 
59942   namespace layout
59943   {
59944     struct SurfaceProtectedCapabilitiesKHR
59945     {
59946     protected:
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::SurfaceProtectedCapabilitiesKHR59947       SurfaceProtectedCapabilitiesKHR( vk::Bool32 supportsProtected_ = 0 )
59948         : supportsProtected( supportsProtected_ )
59949       {}
59950 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::layout::SurfaceProtectedCapabilitiesKHR59951       SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs )
59952       {
59953         *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(this) = rhs;
59954       }
59955 
operator =VULKAN_HPP_NAMESPACE::layout::SurfaceProtectedCapabilitiesKHR59956       SurfaceProtectedCapabilitiesKHR& operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs )
59957       {
59958         *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(this) = rhs;
59959         return *this;
59960       }
59961 
59962     public:
59963       vk::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
59964       const void* pNext = nullptr;
59965       vk::Bool32 supportsProtected;
59966     };
59967     static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "layout struct and wrapper have different size!" );
59968   }
59969 
59970   struct SurfaceProtectedCapabilitiesKHR : public layout::SurfaceProtectedCapabilitiesKHR
59971   {
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59972     SurfaceProtectedCapabilitiesKHR( vk::Bool32 supportsProtected_ = 0 )
59973       : layout::SurfaceProtectedCapabilitiesKHR( supportsProtected_ )
59974     {}
59975 
SurfaceProtectedCapabilitiesKHRVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59976     SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs )
59977       : layout::SurfaceProtectedCapabilitiesKHR( rhs )
59978     {}
59979 
operator =VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59980     SurfaceProtectedCapabilitiesKHR& operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs )
59981     {
59982       *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(this) = rhs;
59983       return *this;
59984     }
59985 
setPNextVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59986     SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ )
59987     {
59988       pNext = pNext_;
59989       return *this;
59990     }
59991 
setSupportsProtectedVULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59992     SurfaceProtectedCapabilitiesKHR & setSupportsProtected( vk::Bool32 supportsProtected_ )
59993     {
59994       supportsProtected = supportsProtected_;
59995       return *this;
59996     }
59997 
operator VkSurfaceProtectedCapabilitiesKHR const&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR59998     operator VkSurfaceProtectedCapabilitiesKHR const&() const
59999     {
60000       return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
60001     }
60002 
operator VkSurfaceProtectedCapabilitiesKHR&VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR60003     operator VkSurfaceProtectedCapabilitiesKHR &()
60004     {
60005       return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
60006     }
60007 
operator ==VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR60008     bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const
60009     {
60010       return ( sType == rhs.sType )
60011           && ( pNext == rhs.pNext )
60012           && ( supportsProtected == rhs.supportsProtected );
60013     }
60014 
operator !=VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR60015     bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const
60016     {
60017       return !operator==( rhs );
60018     }
60019 
60020   private:
60021     using layout::SurfaceProtectedCapabilitiesKHR::sType;
60022   };
60023   static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
60024   static_assert( std::is_standard_layout<SurfaceProtectedCapabilitiesKHR>::value, "struct wrapper is not a standard layout!" );
60025 
60026   namespace layout
60027   {
60028     struct SwapchainCounterCreateInfoEXT
60029     {
60030     protected:
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::SwapchainCounterCreateInfoEXT60031       SwapchainCounterCreateInfoEXT( vk::SurfaceCounterFlagsEXT surfaceCounters_ = vk::SurfaceCounterFlagsEXT() )
60032         : surfaceCounters( surfaceCounters_ )
60033       {}
60034 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::SwapchainCounterCreateInfoEXT60035       SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs )
60036       {
60037         *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this) = rhs;
60038       }
60039 
operator =VULKAN_HPP_NAMESPACE::layout::SwapchainCounterCreateInfoEXT60040       SwapchainCounterCreateInfoEXT& operator=( VkSwapchainCounterCreateInfoEXT const & rhs )
60041       {
60042         *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this) = rhs;
60043         return *this;
60044       }
60045 
60046     public:
60047       vk::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
60048       const void* pNext = nullptr;
60049       vk::SurfaceCounterFlagsEXT surfaceCounters;
60050     };
60051     static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "layout struct and wrapper have different size!" );
60052   }
60053 
60054   struct SwapchainCounterCreateInfoEXT : public layout::SwapchainCounterCreateInfoEXT
60055   {
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60056     SwapchainCounterCreateInfoEXT( vk::SurfaceCounterFlagsEXT surfaceCounters_ = vk::SurfaceCounterFlagsEXT() )
60057       : layout::SwapchainCounterCreateInfoEXT( surfaceCounters_ )
60058     {}
60059 
SwapchainCounterCreateInfoEXTVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60060     SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs )
60061       : layout::SwapchainCounterCreateInfoEXT( rhs )
60062     {}
60063 
operator =VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60064     SwapchainCounterCreateInfoEXT& operator=( VkSwapchainCounterCreateInfoEXT const & rhs )
60065     {
60066       *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this) = rhs;
60067       return *this;
60068     }
60069 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60070     SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ )
60071     {
60072       pNext = pNext_;
60073       return *this;
60074     }
60075 
setSurfaceCountersVULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60076     SwapchainCounterCreateInfoEXT & setSurfaceCounters( vk::SurfaceCounterFlagsEXT surfaceCounters_ )
60077     {
60078       surfaceCounters = surfaceCounters_;
60079       return *this;
60080     }
60081 
operator VkSwapchainCounterCreateInfoEXT const&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60082     operator VkSwapchainCounterCreateInfoEXT const&() const
60083     {
60084       return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
60085     }
60086 
operator VkSwapchainCounterCreateInfoEXT&VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60087     operator VkSwapchainCounterCreateInfoEXT &()
60088     {
60089       return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
60090     }
60091 
operator ==VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60092     bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const
60093     {
60094       return ( sType == rhs.sType )
60095           && ( pNext == rhs.pNext )
60096           && ( surfaceCounters == rhs.surfaceCounters );
60097     }
60098 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT60099     bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const
60100     {
60101       return !operator==( rhs );
60102     }
60103 
60104   private:
60105     using layout::SwapchainCounterCreateInfoEXT::sType;
60106   };
60107   static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
60108   static_assert( std::is_standard_layout<SwapchainCounterCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
60109 
60110   namespace layout
60111   {
60112     struct SwapchainCreateInfoKHR
60113     {
60114     protected:
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::SwapchainCreateInfoKHR60115       SwapchainCreateInfoKHR( vk::SwapchainCreateFlagsKHR flags_ = vk::SwapchainCreateFlagsKHR(),
60116                               vk::SurfaceKHR surface_ = vk::SurfaceKHR(),
60117                               uint32_t minImageCount_ = 0,
60118                               vk::Format imageFormat_ = vk::Format::eUndefined,
60119                               vk::ColorSpaceKHR imageColorSpace_ = vk::ColorSpaceKHR::eSrgbNonlinear,
60120                               vk::Extent2D imageExtent_ = vk::Extent2D(),
60121                               uint32_t imageArrayLayers_ = 0,
60122                               vk::ImageUsageFlags imageUsage_ = vk::ImageUsageFlags(),
60123                               vk::SharingMode imageSharingMode_ = vk::SharingMode::eExclusive,
60124                               uint32_t queueFamilyIndexCount_ = 0,
60125                               const uint32_t* pQueueFamilyIndices_ = nullptr,
60126                               vk::SurfaceTransformFlagBitsKHR preTransform_ = vk::SurfaceTransformFlagBitsKHR::eIdentity,
60127                               vk::CompositeAlphaFlagBitsKHR compositeAlpha_ = vk::CompositeAlphaFlagBitsKHR::eOpaque,
60128                               vk::PresentModeKHR presentMode_ = vk::PresentModeKHR::eImmediate,
60129                               vk::Bool32 clipped_ = 0,
60130                               vk::SwapchainKHR oldSwapchain_ = vk::SwapchainKHR() )
60131         : flags( flags_ )
60132         , surface( surface_ )
60133         , minImageCount( minImageCount_ )
60134         , imageFormat( imageFormat_ )
60135         , imageColorSpace( imageColorSpace_ )
60136         , imageExtent( imageExtent_ )
60137         , imageArrayLayers( imageArrayLayers_ )
60138         , imageUsage( imageUsage_ )
60139         , imageSharingMode( imageSharingMode_ )
60140         , queueFamilyIndexCount( queueFamilyIndexCount_ )
60141         , pQueueFamilyIndices( pQueueFamilyIndices_ )
60142         , preTransform( preTransform_ )
60143         , compositeAlpha( compositeAlpha_ )
60144         , presentMode( presentMode_ )
60145         , clipped( clipped_ )
60146         , oldSwapchain( oldSwapchain_ )
60147       {}
60148 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::SwapchainCreateInfoKHR60149       SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs )
60150       {
60151         *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this) = rhs;
60152       }
60153 
operator =VULKAN_HPP_NAMESPACE::layout::SwapchainCreateInfoKHR60154       SwapchainCreateInfoKHR& operator=( VkSwapchainCreateInfoKHR const & rhs )
60155       {
60156         *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this) = rhs;
60157         return *this;
60158       }
60159 
60160     public:
60161       vk::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
60162       const void* pNext = nullptr;
60163       vk::SwapchainCreateFlagsKHR flags;
60164       vk::SurfaceKHR surface;
60165       uint32_t minImageCount;
60166       vk::Format imageFormat;
60167       vk::ColorSpaceKHR imageColorSpace;
60168       vk::Extent2D imageExtent;
60169       uint32_t imageArrayLayers;
60170       vk::ImageUsageFlags imageUsage;
60171       vk::SharingMode imageSharingMode;
60172       uint32_t queueFamilyIndexCount;
60173       const uint32_t* pQueueFamilyIndices;
60174       vk::SurfaceTransformFlagBitsKHR preTransform;
60175       vk::CompositeAlphaFlagBitsKHR compositeAlpha;
60176       vk::PresentModeKHR presentMode;
60177       vk::Bool32 clipped;
60178       vk::SwapchainKHR oldSwapchain;
60179     };
60180     static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "layout struct and wrapper have different size!" );
60181   }
60182 
60183   struct SwapchainCreateInfoKHR : public layout::SwapchainCreateInfoKHR
60184   {
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60185     SwapchainCreateInfoKHR( vk::SwapchainCreateFlagsKHR flags_ = vk::SwapchainCreateFlagsKHR(),
60186                             vk::SurfaceKHR surface_ = vk::SurfaceKHR(),
60187                             uint32_t minImageCount_ = 0,
60188                             vk::Format imageFormat_ = vk::Format::eUndefined,
60189                             vk::ColorSpaceKHR imageColorSpace_ = vk::ColorSpaceKHR::eSrgbNonlinear,
60190                             vk::Extent2D imageExtent_ = vk::Extent2D(),
60191                             uint32_t imageArrayLayers_ = 0,
60192                             vk::ImageUsageFlags imageUsage_ = vk::ImageUsageFlags(),
60193                             vk::SharingMode imageSharingMode_ = vk::SharingMode::eExclusive,
60194                             uint32_t queueFamilyIndexCount_ = 0,
60195                             const uint32_t* pQueueFamilyIndices_ = nullptr,
60196                             vk::SurfaceTransformFlagBitsKHR preTransform_ = vk::SurfaceTransformFlagBitsKHR::eIdentity,
60197                             vk::CompositeAlphaFlagBitsKHR compositeAlpha_ = vk::CompositeAlphaFlagBitsKHR::eOpaque,
60198                             vk::PresentModeKHR presentMode_ = vk::PresentModeKHR::eImmediate,
60199                             vk::Bool32 clipped_ = 0,
60200                             vk::SwapchainKHR oldSwapchain_ = vk::SwapchainKHR() )
60201       : layout::SwapchainCreateInfoKHR( flags_, surface_, minImageCount_, imageFormat_, imageColorSpace_, imageExtent_, imageArrayLayers_, imageUsage_, imageSharingMode_, queueFamilyIndexCount_, pQueueFamilyIndices_, preTransform_, compositeAlpha_, presentMode_, clipped_, oldSwapchain_ )
60202     {}
60203 
SwapchainCreateInfoKHRVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60204     SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs )
60205       : layout::SwapchainCreateInfoKHR( rhs )
60206     {}
60207 
operator =VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60208     SwapchainCreateInfoKHR& operator=( VkSwapchainCreateInfoKHR const & rhs )
60209     {
60210       *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this) = rhs;
60211       return *this;
60212     }
60213 
setPNextVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60214     SwapchainCreateInfoKHR & setPNext( const void* pNext_ )
60215     {
60216       pNext = pNext_;
60217       return *this;
60218     }
60219 
setFlagsVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60220     SwapchainCreateInfoKHR & setFlags( vk::SwapchainCreateFlagsKHR flags_ )
60221     {
60222       flags = flags_;
60223       return *this;
60224     }
60225 
setSurfaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60226     SwapchainCreateInfoKHR & setSurface( vk::SurfaceKHR surface_ )
60227     {
60228       surface = surface_;
60229       return *this;
60230     }
60231 
setMinImageCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60232     SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ )
60233     {
60234       minImageCount = minImageCount_;
60235       return *this;
60236     }
60237 
setImageFormatVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60238     SwapchainCreateInfoKHR & setImageFormat( vk::Format imageFormat_ )
60239     {
60240       imageFormat = imageFormat_;
60241       return *this;
60242     }
60243 
setImageColorSpaceVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60244     SwapchainCreateInfoKHR & setImageColorSpace( vk::ColorSpaceKHR imageColorSpace_ )
60245     {
60246       imageColorSpace = imageColorSpace_;
60247       return *this;
60248     }
60249 
setImageExtentVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60250     SwapchainCreateInfoKHR & setImageExtent( vk::Extent2D imageExtent_ )
60251     {
60252       imageExtent = imageExtent_;
60253       return *this;
60254     }
60255 
setImageArrayLayersVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60256     SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ )
60257     {
60258       imageArrayLayers = imageArrayLayers_;
60259       return *this;
60260     }
60261 
setImageUsageVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60262     SwapchainCreateInfoKHR & setImageUsage( vk::ImageUsageFlags imageUsage_ )
60263     {
60264       imageUsage = imageUsage_;
60265       return *this;
60266     }
60267 
setImageSharingModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60268     SwapchainCreateInfoKHR & setImageSharingMode( vk::SharingMode imageSharingMode_ )
60269     {
60270       imageSharingMode = imageSharingMode_;
60271       return *this;
60272     }
60273 
setQueueFamilyIndexCountVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60274     SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
60275     {
60276       queueFamilyIndexCount = queueFamilyIndexCount_;
60277       return *this;
60278     }
60279 
setPQueueFamilyIndicesVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60280     SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
60281     {
60282       pQueueFamilyIndices = pQueueFamilyIndices_;
60283       return *this;
60284     }
60285 
setPreTransformVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60286     SwapchainCreateInfoKHR & setPreTransform( vk::SurfaceTransformFlagBitsKHR preTransform_ )
60287     {
60288       preTransform = preTransform_;
60289       return *this;
60290     }
60291 
setCompositeAlphaVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60292     SwapchainCreateInfoKHR & setCompositeAlpha( vk::CompositeAlphaFlagBitsKHR compositeAlpha_ )
60293     {
60294       compositeAlpha = compositeAlpha_;
60295       return *this;
60296     }
60297 
setPresentModeVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60298     SwapchainCreateInfoKHR & setPresentMode( vk::PresentModeKHR presentMode_ )
60299     {
60300       presentMode = presentMode_;
60301       return *this;
60302     }
60303 
setClippedVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60304     SwapchainCreateInfoKHR & setClipped( vk::Bool32 clipped_ )
60305     {
60306       clipped = clipped_;
60307       return *this;
60308     }
60309 
setOldSwapchainVULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60310     SwapchainCreateInfoKHR & setOldSwapchain( vk::SwapchainKHR oldSwapchain_ )
60311     {
60312       oldSwapchain = oldSwapchain_;
60313       return *this;
60314     }
60315 
operator VkSwapchainCreateInfoKHR const&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60316     operator VkSwapchainCreateInfoKHR const&() const
60317     {
60318       return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
60319     }
60320 
operator VkSwapchainCreateInfoKHR&VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60321     operator VkSwapchainCreateInfoKHR &()
60322     {
60323       return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
60324     }
60325 
operator ==VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60326     bool operator==( SwapchainCreateInfoKHR const& rhs ) const
60327     {
60328       return ( sType == rhs.sType )
60329           && ( pNext == rhs.pNext )
60330           && ( flags == rhs.flags )
60331           && ( surface == rhs.surface )
60332           && ( minImageCount == rhs.minImageCount )
60333           && ( imageFormat == rhs.imageFormat )
60334           && ( imageColorSpace == rhs.imageColorSpace )
60335           && ( imageExtent == rhs.imageExtent )
60336           && ( imageArrayLayers == rhs.imageArrayLayers )
60337           && ( imageUsage == rhs.imageUsage )
60338           && ( imageSharingMode == rhs.imageSharingMode )
60339           && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
60340           && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
60341           && ( preTransform == rhs.preTransform )
60342           && ( compositeAlpha == rhs.compositeAlpha )
60343           && ( presentMode == rhs.presentMode )
60344           && ( clipped == rhs.clipped )
60345           && ( oldSwapchain == rhs.oldSwapchain );
60346     }
60347 
operator !=VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR60348     bool operator!=( SwapchainCreateInfoKHR const& rhs ) const
60349     {
60350       return !operator==( rhs );
60351     }
60352 
60353   private:
60354     using layout::SwapchainCreateInfoKHR::sType;
60355   };
60356   static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
60357   static_assert( std::is_standard_layout<SwapchainCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
60358 
60359   namespace layout
60360   {
60361     struct SwapchainDisplayNativeHdrCreateInfoAMD
60362     {
60363     protected:
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::SwapchainDisplayNativeHdrCreateInfoAMD60364       SwapchainDisplayNativeHdrCreateInfoAMD( vk::Bool32 localDimmingEnable_ = 0 )
60365         : localDimmingEnable( localDimmingEnable_ )
60366       {}
60367 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::layout::SwapchainDisplayNativeHdrCreateInfoAMD60368       SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
60369       {
60370         *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(this) = rhs;
60371       }
60372 
operator =VULKAN_HPP_NAMESPACE::layout::SwapchainDisplayNativeHdrCreateInfoAMD60373       SwapchainDisplayNativeHdrCreateInfoAMD& operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
60374       {
60375         *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(this) = rhs;
60376         return *this;
60377       }
60378 
60379     public:
60380       vk::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
60381       const void* pNext = nullptr;
60382       vk::Bool32 localDimmingEnable;
60383     };
60384     static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "layout struct and wrapper have different size!" );
60385   }
60386 
60387   struct SwapchainDisplayNativeHdrCreateInfoAMD : public layout::SwapchainDisplayNativeHdrCreateInfoAMD
60388   {
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60389     SwapchainDisplayNativeHdrCreateInfoAMD( vk::Bool32 localDimmingEnable_ = 0 )
60390       : layout::SwapchainDisplayNativeHdrCreateInfoAMD( localDimmingEnable_ )
60391     {}
60392 
SwapchainDisplayNativeHdrCreateInfoAMDVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60393     SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
60394       : layout::SwapchainDisplayNativeHdrCreateInfoAMD( rhs )
60395     {}
60396 
operator =VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60397     SwapchainDisplayNativeHdrCreateInfoAMD& operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
60398     {
60399       *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(this) = rhs;
60400       return *this;
60401     }
60402 
setPNextVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60403     SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ )
60404     {
60405       pNext = pNext_;
60406       return *this;
60407     }
60408 
setLocalDimmingEnableVULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60409     SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( vk::Bool32 localDimmingEnable_ )
60410     {
60411       localDimmingEnable = localDimmingEnable_;
60412       return *this;
60413     }
60414 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60415     operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const
60416     {
60417       return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
60418     }
60419 
operator VkSwapchainDisplayNativeHdrCreateInfoAMD&VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60420     operator VkSwapchainDisplayNativeHdrCreateInfoAMD &()
60421     {
60422       return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
60423     }
60424 
operator ==VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60425     bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const
60426     {
60427       return ( sType == rhs.sType )
60428           && ( pNext == rhs.pNext )
60429           && ( localDimmingEnable == rhs.localDimmingEnable );
60430     }
60431 
operator !=VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD60432     bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const
60433     {
60434       return !operator==( rhs );
60435     }
60436 
60437   private:
60438     using layout::SwapchainDisplayNativeHdrCreateInfoAMD::sType;
60439   };
60440   static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
60441   static_assert( std::is_standard_layout<SwapchainDisplayNativeHdrCreateInfoAMD>::value, "struct wrapper is not a standard layout!" );
60442 
60443   namespace layout
60444   {
60445     struct TextureLODGatherFormatPropertiesAMD
60446     {
60447     protected:
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::layout::TextureLODGatherFormatPropertiesAMD60448       TextureLODGatherFormatPropertiesAMD( vk::Bool32 supportsTextureGatherLODBiasAMD_ = 0 )
60449         : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
60450       {}
60451 
TextureLODGatherFormatPropertiesAMDVULKAN_HPP_NAMESPACE::layout::TextureLODGatherFormatPropertiesAMD60452       TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs )
60453       {
60454         *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(this) = rhs;
60455       }
60456 
operator =VULKAN_HPP_NAMESPACE::layout::TextureLODGatherFormatPropertiesAMD60457       TextureLODGatherFormatPropertiesAMD& operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs )
60458       {
60459         *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(this) = rhs;
60460         return *this;
60461       }
60462 
60463     public:
60464       vk::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
60465       void* pNext = nullptr;
60466       vk::Bool32 supportsTextureGatherLODBiasAMD;
60467     };
60468     static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "layout struct and wrapper have different size!" );
60469   }
60470 
60471   struct TextureLODGatherFormatPropertiesAMD : public layout::TextureLODGatherFormatPropertiesAMD
60472   {
operator VkTextureLODGatherFormatPropertiesAMD const&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD60473     operator VkTextureLODGatherFormatPropertiesAMD const&() const
60474     {
60475       return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
60476     }
60477 
operator VkTextureLODGatherFormatPropertiesAMD&VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD60478     operator VkTextureLODGatherFormatPropertiesAMD &()
60479     {
60480       return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
60481     }
60482 
operator ==VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD60483     bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const
60484     {
60485       return ( sType == rhs.sType )
60486           && ( pNext == rhs.pNext )
60487           && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
60488     }
60489 
operator !=VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD60490     bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const
60491     {
60492       return !operator==( rhs );
60493     }
60494 
60495   private:
60496     using layout::TextureLODGatherFormatPropertiesAMD::sType;
60497   };
60498   static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
60499   static_assert( std::is_standard_layout<TextureLODGatherFormatPropertiesAMD>::value, "struct wrapper is not a standard layout!" );
60500 
60501   namespace layout
60502   {
60503     struct ValidationCacheCreateInfoEXT
60504     {
60505     protected:
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ValidationCacheCreateInfoEXT60506       ValidationCacheCreateInfoEXT( vk::ValidationCacheCreateFlagsEXT flags_ = vk::ValidationCacheCreateFlagsEXT(),
60507                                     size_t initialDataSize_ = 0,
60508                                     const void* pInitialData_ = nullptr )
60509         : flags( flags_ )
60510         , initialDataSize( initialDataSize_ )
60511         , pInitialData( pInitialData_ )
60512       {}
60513 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::layout::ValidationCacheCreateInfoEXT60514       ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs )
60515       {
60516         *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this) = rhs;
60517       }
60518 
operator =VULKAN_HPP_NAMESPACE::layout::ValidationCacheCreateInfoEXT60519       ValidationCacheCreateInfoEXT& operator=( VkValidationCacheCreateInfoEXT const & rhs )
60520       {
60521         *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this) = rhs;
60522         return *this;
60523       }
60524 
60525     public:
60526       vk::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
60527       const void* pNext = nullptr;
60528       vk::ValidationCacheCreateFlagsEXT flags;
60529       size_t initialDataSize;
60530       const void* pInitialData;
60531     };
60532     static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "layout struct and wrapper have different size!" );
60533   }
60534 
60535   struct ValidationCacheCreateInfoEXT : public layout::ValidationCacheCreateInfoEXT
60536   {
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60537     ValidationCacheCreateInfoEXT( vk::ValidationCacheCreateFlagsEXT flags_ = vk::ValidationCacheCreateFlagsEXT(),
60538                                   size_t initialDataSize_ = 0,
60539                                   const void* pInitialData_ = nullptr )
60540       : layout::ValidationCacheCreateInfoEXT( flags_, initialDataSize_, pInitialData_ )
60541     {}
60542 
ValidationCacheCreateInfoEXTVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60543     ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs )
60544       : layout::ValidationCacheCreateInfoEXT( rhs )
60545     {}
60546 
operator =VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60547     ValidationCacheCreateInfoEXT& operator=( VkValidationCacheCreateInfoEXT const & rhs )
60548     {
60549       *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this) = rhs;
60550       return *this;
60551     }
60552 
setPNextVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60553     ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ )
60554     {
60555       pNext = pNext_;
60556       return *this;
60557     }
60558 
setFlagsVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60559     ValidationCacheCreateInfoEXT & setFlags( vk::ValidationCacheCreateFlagsEXT flags_ )
60560     {
60561       flags = flags_;
60562       return *this;
60563     }
60564 
setInitialDataSizeVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60565     ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ )
60566     {
60567       initialDataSize = initialDataSize_;
60568       return *this;
60569     }
60570 
setPInitialDataVULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60571     ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ )
60572     {
60573       pInitialData = pInitialData_;
60574       return *this;
60575     }
60576 
operator VkValidationCacheCreateInfoEXT const&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60577     operator VkValidationCacheCreateInfoEXT const&() const
60578     {
60579       return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
60580     }
60581 
operator VkValidationCacheCreateInfoEXT&VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60582     operator VkValidationCacheCreateInfoEXT &()
60583     {
60584       return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
60585     }
60586 
operator ==VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60587     bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const
60588     {
60589       return ( sType == rhs.sType )
60590           && ( pNext == rhs.pNext )
60591           && ( flags == rhs.flags )
60592           && ( initialDataSize == rhs.initialDataSize )
60593           && ( pInitialData == rhs.pInitialData );
60594     }
60595 
operator !=VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT60596     bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const
60597     {
60598       return !operator==( rhs );
60599     }
60600 
60601   private:
60602     using layout::ValidationCacheCreateInfoEXT::sType;
60603   };
60604   static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
60605   static_assert( std::is_standard_layout<ValidationCacheCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
60606 
60607   namespace layout
60608   {
60609     struct ValidationFeaturesEXT
60610     {
60611     protected:
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::ValidationFeaturesEXT60612       ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = 0,
60613                              const vk::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = nullptr,
60614                              uint32_t disabledValidationFeatureCount_ = 0,
60615                              const vk::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = nullptr )
60616         : enabledValidationFeatureCount( enabledValidationFeatureCount_ )
60617         , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
60618         , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
60619         , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
60620       {}
60621 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::layout::ValidationFeaturesEXT60622       ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs )
60623       {
60624         *reinterpret_cast<VkValidationFeaturesEXT*>(this) = rhs;
60625       }
60626 
operator =VULKAN_HPP_NAMESPACE::layout::ValidationFeaturesEXT60627       ValidationFeaturesEXT& operator=( VkValidationFeaturesEXT const & rhs )
60628       {
60629         *reinterpret_cast<VkValidationFeaturesEXT*>(this) = rhs;
60630         return *this;
60631       }
60632 
60633     public:
60634       vk::StructureType sType = StructureType::eValidationFeaturesEXT;
60635       const void* pNext = nullptr;
60636       uint32_t enabledValidationFeatureCount;
60637       const vk::ValidationFeatureEnableEXT* pEnabledValidationFeatures;
60638       uint32_t disabledValidationFeatureCount;
60639       const vk::ValidationFeatureDisableEXT* pDisabledValidationFeatures;
60640     };
60641     static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "layout struct and wrapper have different size!" );
60642   }
60643 
60644   struct ValidationFeaturesEXT : public layout::ValidationFeaturesEXT
60645   {
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60646     ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = 0,
60647                            const vk::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = nullptr,
60648                            uint32_t disabledValidationFeatureCount_ = 0,
60649                            const vk::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = nullptr )
60650       : layout::ValidationFeaturesEXT( enabledValidationFeatureCount_, pEnabledValidationFeatures_, disabledValidationFeatureCount_, pDisabledValidationFeatures_ )
60651     {}
60652 
ValidationFeaturesEXTVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60653     ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs )
60654       : layout::ValidationFeaturesEXT( rhs )
60655     {}
60656 
operator =VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60657     ValidationFeaturesEXT& operator=( VkValidationFeaturesEXT const & rhs )
60658     {
60659       *reinterpret_cast<VkValidationFeaturesEXT*>(this) = rhs;
60660       return *this;
60661     }
60662 
setPNextVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60663     ValidationFeaturesEXT & setPNext( const void* pNext_ )
60664     {
60665       pNext = pNext_;
60666       return *this;
60667     }
60668 
setEnabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60669     ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ )
60670     {
60671       enabledValidationFeatureCount = enabledValidationFeatureCount_;
60672       return *this;
60673     }
60674 
setPEnabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60675     ValidationFeaturesEXT & setPEnabledValidationFeatures( const vk::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ )
60676     {
60677       pEnabledValidationFeatures = pEnabledValidationFeatures_;
60678       return *this;
60679     }
60680 
setDisabledValidationFeatureCountVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60681     ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ )
60682     {
60683       disabledValidationFeatureCount = disabledValidationFeatureCount_;
60684       return *this;
60685     }
60686 
setPDisabledValidationFeaturesVULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60687     ValidationFeaturesEXT & setPDisabledValidationFeatures( const vk::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ )
60688     {
60689       pDisabledValidationFeatures = pDisabledValidationFeatures_;
60690       return *this;
60691     }
60692 
operator VkValidationFeaturesEXT const&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60693     operator VkValidationFeaturesEXT const&() const
60694     {
60695       return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
60696     }
60697 
operator VkValidationFeaturesEXT&VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60698     operator VkValidationFeaturesEXT &()
60699     {
60700       return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
60701     }
60702 
operator ==VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60703     bool operator==( ValidationFeaturesEXT const& rhs ) const
60704     {
60705       return ( sType == rhs.sType )
60706           && ( pNext == rhs.pNext )
60707           && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
60708           && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
60709           && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
60710           && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
60711     }
60712 
operator !=VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT60713     bool operator!=( ValidationFeaturesEXT const& rhs ) const
60714     {
60715       return !operator==( rhs );
60716     }
60717 
60718   private:
60719     using layout::ValidationFeaturesEXT::sType;
60720   };
60721   static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
60722   static_assert( std::is_standard_layout<ValidationFeaturesEXT>::value, "struct wrapper is not a standard layout!" );
60723 
60724   namespace layout
60725   {
60726     struct ValidationFlagsEXT
60727     {
60728     protected:
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::layout::ValidationFlagsEXT60729       ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = 0,
60730                           const vk::ValidationCheckEXT* pDisabledValidationChecks_ = nullptr )
60731         : disabledValidationCheckCount( disabledValidationCheckCount_ )
60732         , pDisabledValidationChecks( pDisabledValidationChecks_ )
60733       {}
60734 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::layout::ValidationFlagsEXT60735       ValidationFlagsEXT( VkValidationFlagsEXT const & rhs )
60736       {
60737         *reinterpret_cast<VkValidationFlagsEXT*>(this) = rhs;
60738       }
60739 
operator =VULKAN_HPP_NAMESPACE::layout::ValidationFlagsEXT60740       ValidationFlagsEXT& operator=( VkValidationFlagsEXT const & rhs )
60741       {
60742         *reinterpret_cast<VkValidationFlagsEXT*>(this) = rhs;
60743         return *this;
60744       }
60745 
60746     public:
60747       vk::StructureType sType = StructureType::eValidationFlagsEXT;
60748       const void* pNext = nullptr;
60749       uint32_t disabledValidationCheckCount;
60750       const vk::ValidationCheckEXT* pDisabledValidationChecks;
60751     };
60752     static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "layout struct and wrapper have different size!" );
60753   }
60754 
60755   struct ValidationFlagsEXT : public layout::ValidationFlagsEXT
60756   {
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT60757     ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = 0,
60758                         const vk::ValidationCheckEXT* pDisabledValidationChecks_ = nullptr )
60759       : layout::ValidationFlagsEXT( disabledValidationCheckCount_, pDisabledValidationChecks_ )
60760     {}
60761 
ValidationFlagsEXTVULKAN_HPP_NAMESPACE::ValidationFlagsEXT60762     ValidationFlagsEXT( VkValidationFlagsEXT const & rhs )
60763       : layout::ValidationFlagsEXT( rhs )
60764     {}
60765 
operator =VULKAN_HPP_NAMESPACE::ValidationFlagsEXT60766     ValidationFlagsEXT& operator=( VkValidationFlagsEXT const & rhs )
60767     {
60768       *reinterpret_cast<VkValidationFlagsEXT*>(this) = rhs;
60769       return *this;
60770     }
60771 
setPNextVULKAN_HPP_NAMESPACE::ValidationFlagsEXT60772     ValidationFlagsEXT & setPNext( const void* pNext_ )
60773     {
60774       pNext = pNext_;
60775       return *this;
60776     }
60777 
setDisabledValidationCheckCountVULKAN_HPP_NAMESPACE::ValidationFlagsEXT60778     ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ )
60779     {
60780       disabledValidationCheckCount = disabledValidationCheckCount_;
60781       return *this;
60782     }
60783 
setPDisabledValidationChecksVULKAN_HPP_NAMESPACE::ValidationFlagsEXT60784     ValidationFlagsEXT & setPDisabledValidationChecks( const vk::ValidationCheckEXT* pDisabledValidationChecks_ )
60785     {
60786       pDisabledValidationChecks = pDisabledValidationChecks_;
60787       return *this;
60788     }
60789 
operator VkValidationFlagsEXT const&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT60790     operator VkValidationFlagsEXT const&() const
60791     {
60792       return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
60793     }
60794 
operator VkValidationFlagsEXT&VULKAN_HPP_NAMESPACE::ValidationFlagsEXT60795     operator VkValidationFlagsEXT &()
60796     {
60797       return *reinterpret_cast<VkValidationFlagsEXT*>( this );
60798     }
60799 
operator ==VULKAN_HPP_NAMESPACE::ValidationFlagsEXT60800     bool operator==( ValidationFlagsEXT const& rhs ) const
60801     {
60802       return ( sType == rhs.sType )
60803           && ( pNext == rhs.pNext )
60804           && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
60805           && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
60806     }
60807 
operator !=VULKAN_HPP_NAMESPACE::ValidationFlagsEXT60808     bool operator!=( ValidationFlagsEXT const& rhs ) const
60809     {
60810       return !operator==( rhs );
60811     }
60812 
60813   private:
60814     using layout::ValidationFlagsEXT::sType;
60815   };
60816   static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
60817   static_assert( std::is_standard_layout<ValidationFlagsEXT>::value, "struct wrapper is not a standard layout!" );
60818 
60819 #ifdef VK_USE_PLATFORM_VI_NN
60820 
60821   namespace layout
60822   {
60823     struct ViSurfaceCreateInfoNN
60824     {
60825     protected:
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::layout::ViSurfaceCreateInfoNN60826       ViSurfaceCreateInfoNN( vk::ViSurfaceCreateFlagsNN flags_ = vk::ViSurfaceCreateFlagsNN(),
60827                              void* window_ = nullptr )
60828         : flags( flags_ )
60829         , window( window_ )
60830       {}
60831 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::layout::ViSurfaceCreateInfoNN60832       ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs )
60833       {
60834         *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this) = rhs;
60835       }
60836 
operator =VULKAN_HPP_NAMESPACE::layout::ViSurfaceCreateInfoNN60837       ViSurfaceCreateInfoNN& operator=( VkViSurfaceCreateInfoNN const & rhs )
60838       {
60839         *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this) = rhs;
60840         return *this;
60841       }
60842 
60843     public:
60844       vk::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
60845       const void* pNext = nullptr;
60846       vk::ViSurfaceCreateFlagsNN flags;
60847       void* window;
60848     };
60849     static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "layout struct and wrapper have different size!" );
60850   }
60851 
60852   struct ViSurfaceCreateInfoNN : public layout::ViSurfaceCreateInfoNN
60853   {
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60854     ViSurfaceCreateInfoNN( vk::ViSurfaceCreateFlagsNN flags_ = vk::ViSurfaceCreateFlagsNN(),
60855                            void* window_ = nullptr )
60856       : layout::ViSurfaceCreateInfoNN( flags_, window_ )
60857     {}
60858 
ViSurfaceCreateInfoNNVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60859     ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs )
60860       : layout::ViSurfaceCreateInfoNN( rhs )
60861     {}
60862 
operator =VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60863     ViSurfaceCreateInfoNN& operator=( VkViSurfaceCreateInfoNN const & rhs )
60864     {
60865       *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this) = rhs;
60866       return *this;
60867     }
60868 
setPNextVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60869     ViSurfaceCreateInfoNN & setPNext( const void* pNext_ )
60870     {
60871       pNext = pNext_;
60872       return *this;
60873     }
60874 
setFlagsVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60875     ViSurfaceCreateInfoNN & setFlags( vk::ViSurfaceCreateFlagsNN flags_ )
60876     {
60877       flags = flags_;
60878       return *this;
60879     }
60880 
setWindowVULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60881     ViSurfaceCreateInfoNN & setWindow( void* window_ )
60882     {
60883       window = window_;
60884       return *this;
60885     }
60886 
operator VkViSurfaceCreateInfoNN const&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60887     operator VkViSurfaceCreateInfoNN const&() const
60888     {
60889       return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
60890     }
60891 
operator VkViSurfaceCreateInfoNN&VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60892     operator VkViSurfaceCreateInfoNN &()
60893     {
60894       return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
60895     }
60896 
operator ==VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60897     bool operator==( ViSurfaceCreateInfoNN const& rhs ) const
60898     {
60899       return ( sType == rhs.sType )
60900           && ( pNext == rhs.pNext )
60901           && ( flags == rhs.flags )
60902           && ( window == rhs.window );
60903     }
60904 
operator !=VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN60905     bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const
60906     {
60907       return !operator==( rhs );
60908     }
60909 
60910   private:
60911     using layout::ViSurfaceCreateInfoNN::sType;
60912   };
60913   static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
60914   static_assert( std::is_standard_layout<ViSurfaceCreateInfoNN>::value, "struct wrapper is not a standard layout!" );
60915 #endif /*VK_USE_PLATFORM_VI_NN*/
60916 
60917 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
60918 
60919   namespace layout
60920   {
60921     struct WaylandSurfaceCreateInfoKHR
60922     {
60923     protected:
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::WaylandSurfaceCreateInfoKHR60924       WaylandSurfaceCreateInfoKHR( vk::WaylandSurfaceCreateFlagsKHR flags_ = vk::WaylandSurfaceCreateFlagsKHR(),
60925                                    struct wl_display* display_ = nullptr,
60926                                    struct wl_surface* surface_ = nullptr )
60927         : flags( flags_ )
60928         , display( display_ )
60929         , surface( surface_ )
60930       {}
60931 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::WaylandSurfaceCreateInfoKHR60932       WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs )
60933       {
60934         *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this) = rhs;
60935       }
60936 
operator =VULKAN_HPP_NAMESPACE::layout::WaylandSurfaceCreateInfoKHR60937       WaylandSurfaceCreateInfoKHR& operator=( VkWaylandSurfaceCreateInfoKHR const & rhs )
60938       {
60939         *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this) = rhs;
60940         return *this;
60941       }
60942 
60943     public:
60944       vk::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
60945       const void* pNext = nullptr;
60946       vk::WaylandSurfaceCreateFlagsKHR flags;
60947       struct wl_display* display;
60948       struct wl_surface* surface;
60949     };
60950     static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
60951   }
60952 
60953   struct WaylandSurfaceCreateInfoKHR : public layout::WaylandSurfaceCreateInfoKHR
60954   {
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60955     WaylandSurfaceCreateInfoKHR( vk::WaylandSurfaceCreateFlagsKHR flags_ = vk::WaylandSurfaceCreateFlagsKHR(),
60956                                  struct wl_display* display_ = nullptr,
60957                                  struct wl_surface* surface_ = nullptr )
60958       : layout::WaylandSurfaceCreateInfoKHR( flags_, display_, surface_ )
60959     {}
60960 
WaylandSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60961     WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs )
60962       : layout::WaylandSurfaceCreateInfoKHR( rhs )
60963     {}
60964 
operator =VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60965     WaylandSurfaceCreateInfoKHR& operator=( VkWaylandSurfaceCreateInfoKHR const & rhs )
60966     {
60967       *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this) = rhs;
60968       return *this;
60969     }
60970 
setPNextVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60971     WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
60972     {
60973       pNext = pNext_;
60974       return *this;
60975     }
60976 
setFlagsVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60977     WaylandSurfaceCreateInfoKHR & setFlags( vk::WaylandSurfaceCreateFlagsKHR flags_ )
60978     {
60979       flags = flags_;
60980       return *this;
60981     }
60982 
setDisplayVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60983     WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ )
60984     {
60985       display = display_;
60986       return *this;
60987     }
60988 
setSurfaceVULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60989     WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ )
60990     {
60991       surface = surface_;
60992       return *this;
60993     }
60994 
operator VkWaylandSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR60995     operator VkWaylandSurfaceCreateInfoKHR const&() const
60996     {
60997       return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
60998     }
60999 
operator VkWaylandSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR61000     operator VkWaylandSurfaceCreateInfoKHR &()
61001     {
61002       return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
61003     }
61004 
operator ==VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR61005     bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const
61006     {
61007       return ( sType == rhs.sType )
61008           && ( pNext == rhs.pNext )
61009           && ( flags == rhs.flags )
61010           && ( display == rhs.display )
61011           && ( surface == rhs.surface );
61012     }
61013 
operator !=VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR61014     bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const
61015     {
61016       return !operator==( rhs );
61017     }
61018 
61019   private:
61020     using layout::WaylandSurfaceCreateInfoKHR::sType;
61021   };
61022   static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
61023   static_assert( std::is_standard_layout<WaylandSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
61024 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
61025 
61026 #ifdef VK_USE_PLATFORM_WIN32_KHR
61027 
61028   namespace layout
61029   {
61030     struct Win32KeyedMutexAcquireReleaseInfoKHR
61031     {
61032     protected:
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoKHR61033       Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = 0,
61034                                             const vk::DeviceMemory* pAcquireSyncs_ = nullptr,
61035                                             const uint64_t* pAcquireKeys_ = nullptr,
61036                                             const uint32_t* pAcquireTimeouts_ = nullptr,
61037                                             uint32_t releaseCount_ = 0,
61038                                             const vk::DeviceMemory* pReleaseSyncs_ = nullptr,
61039                                             const uint64_t* pReleaseKeys_ = nullptr )
61040         : acquireCount( acquireCount_ )
61041         , pAcquireSyncs( pAcquireSyncs_ )
61042         , pAcquireKeys( pAcquireKeys_ )
61043         , pAcquireTimeouts( pAcquireTimeouts_ )
61044         , releaseCount( releaseCount_ )
61045         , pReleaseSyncs( pReleaseSyncs_ )
61046         , pReleaseKeys( pReleaseKeys_ )
61047       {}
61048 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoKHR61049       Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
61050       {
61051         *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this) = rhs;
61052       }
61053 
operator =VULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoKHR61054       Win32KeyedMutexAcquireReleaseInfoKHR& operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
61055       {
61056         *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this) = rhs;
61057         return *this;
61058       }
61059 
61060     public:
61061       vk::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
61062       const void* pNext = nullptr;
61063       uint32_t acquireCount;
61064       const vk::DeviceMemory* pAcquireSyncs;
61065       const uint64_t* pAcquireKeys;
61066       const uint32_t* pAcquireTimeouts;
61067       uint32_t releaseCount;
61068       const vk::DeviceMemory* pReleaseSyncs;
61069       const uint64_t* pReleaseKeys;
61070     };
61071     static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "layout struct and wrapper have different size!" );
61072   }
61073 
61074   struct Win32KeyedMutexAcquireReleaseInfoKHR : public layout::Win32KeyedMutexAcquireReleaseInfoKHR
61075   {
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61076     Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = 0,
61077                                           const vk::DeviceMemory* pAcquireSyncs_ = nullptr,
61078                                           const uint64_t* pAcquireKeys_ = nullptr,
61079                                           const uint32_t* pAcquireTimeouts_ = nullptr,
61080                                           uint32_t releaseCount_ = 0,
61081                                           const vk::DeviceMemory* pReleaseSyncs_ = nullptr,
61082                                           const uint64_t* pReleaseKeys_ = nullptr )
61083       : layout::Win32KeyedMutexAcquireReleaseInfoKHR( acquireCount_, pAcquireSyncs_, pAcquireKeys_, pAcquireTimeouts_, releaseCount_, pReleaseSyncs_, pReleaseKeys_ )
61084     {}
61085 
Win32KeyedMutexAcquireReleaseInfoKHRVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61086     Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
61087       : layout::Win32KeyedMutexAcquireReleaseInfoKHR( rhs )
61088     {}
61089 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61090     Win32KeyedMutexAcquireReleaseInfoKHR& operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
61091     {
61092       *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this) = rhs;
61093       return *this;
61094     }
61095 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61096     Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ )
61097     {
61098       pNext = pNext_;
61099       return *this;
61100     }
61101 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61102     Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ )
61103     {
61104       acquireCount = acquireCount_;
61105       return *this;
61106     }
61107 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61108     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const vk::DeviceMemory* pAcquireSyncs_ )
61109     {
61110       pAcquireSyncs = pAcquireSyncs_;
61111       return *this;
61112     }
61113 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61114     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ )
61115     {
61116       pAcquireKeys = pAcquireKeys_;
61117       return *this;
61118     }
61119 
setPAcquireTimeoutsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61120     Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ )
61121     {
61122       pAcquireTimeouts = pAcquireTimeouts_;
61123       return *this;
61124     }
61125 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61126     Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ )
61127     {
61128       releaseCount = releaseCount_;
61129       return *this;
61130     }
61131 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61132     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const vk::DeviceMemory* pReleaseSyncs_ )
61133     {
61134       pReleaseSyncs = pReleaseSyncs_;
61135       return *this;
61136     }
61137 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61138     Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ )
61139     {
61140       pReleaseKeys = pReleaseKeys_;
61141       return *this;
61142     }
61143 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61144     operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const
61145     {
61146       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
61147     }
61148 
operator VkWin32KeyedMutexAcquireReleaseInfoKHR&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61149     operator VkWin32KeyedMutexAcquireReleaseInfoKHR &()
61150     {
61151       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
61152     }
61153 
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61154     bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const
61155     {
61156       return ( sType == rhs.sType )
61157           && ( pNext == rhs.pNext )
61158           && ( acquireCount == rhs.acquireCount )
61159           && ( pAcquireSyncs == rhs.pAcquireSyncs )
61160           && ( pAcquireKeys == rhs.pAcquireKeys )
61161           && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
61162           && ( releaseCount == rhs.releaseCount )
61163           && ( pReleaseSyncs == rhs.pReleaseSyncs )
61164           && ( pReleaseKeys == rhs.pReleaseKeys );
61165     }
61166 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR61167     bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const
61168     {
61169       return !operator==( rhs );
61170     }
61171 
61172   private:
61173     using layout::Win32KeyedMutexAcquireReleaseInfoKHR::sType;
61174   };
61175   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
61176   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoKHR>::value, "struct wrapper is not a standard layout!" );
61177 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
61178 
61179 #ifdef VK_USE_PLATFORM_WIN32_KHR
61180 
61181   namespace layout
61182   {
61183     struct Win32KeyedMutexAcquireReleaseInfoNV
61184     {
61185     protected:
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoNV61186       Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = 0,
61187                                            const vk::DeviceMemory* pAcquireSyncs_ = nullptr,
61188                                            const uint64_t* pAcquireKeys_ = nullptr,
61189                                            const uint32_t* pAcquireTimeoutMilliseconds_ = nullptr,
61190                                            uint32_t releaseCount_ = 0,
61191                                            const vk::DeviceMemory* pReleaseSyncs_ = nullptr,
61192                                            const uint64_t* pReleaseKeys_ = nullptr )
61193         : acquireCount( acquireCount_ )
61194         , pAcquireSyncs( pAcquireSyncs_ )
61195         , pAcquireKeys( pAcquireKeys_ )
61196         , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
61197         , releaseCount( releaseCount_ )
61198         , pReleaseSyncs( pReleaseSyncs_ )
61199         , pReleaseKeys( pReleaseKeys_ )
61200       {}
61201 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoNV61202       Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
61203       {
61204         *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this) = rhs;
61205       }
61206 
operator =VULKAN_HPP_NAMESPACE::layout::Win32KeyedMutexAcquireReleaseInfoNV61207       Win32KeyedMutexAcquireReleaseInfoNV& operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
61208       {
61209         *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this) = rhs;
61210         return *this;
61211       }
61212 
61213     public:
61214       vk::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
61215       const void* pNext = nullptr;
61216       uint32_t acquireCount;
61217       const vk::DeviceMemory* pAcquireSyncs;
61218       const uint64_t* pAcquireKeys;
61219       const uint32_t* pAcquireTimeoutMilliseconds;
61220       uint32_t releaseCount;
61221       const vk::DeviceMemory* pReleaseSyncs;
61222       const uint64_t* pReleaseKeys;
61223     };
61224     static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "layout struct and wrapper have different size!" );
61225   }
61226 
61227   struct Win32KeyedMutexAcquireReleaseInfoNV : public layout::Win32KeyedMutexAcquireReleaseInfoNV
61228   {
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61229     Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = 0,
61230                                          const vk::DeviceMemory* pAcquireSyncs_ = nullptr,
61231                                          const uint64_t* pAcquireKeys_ = nullptr,
61232                                          const uint32_t* pAcquireTimeoutMilliseconds_ = nullptr,
61233                                          uint32_t releaseCount_ = 0,
61234                                          const vk::DeviceMemory* pReleaseSyncs_ = nullptr,
61235                                          const uint64_t* pReleaseKeys_ = nullptr )
61236       : layout::Win32KeyedMutexAcquireReleaseInfoNV( acquireCount_, pAcquireSyncs_, pAcquireKeys_, pAcquireTimeoutMilliseconds_, releaseCount_, pReleaseSyncs_, pReleaseKeys_ )
61237     {}
61238 
Win32KeyedMutexAcquireReleaseInfoNVVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61239     Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
61240       : layout::Win32KeyedMutexAcquireReleaseInfoNV( rhs )
61241     {}
61242 
operator =VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61243     Win32KeyedMutexAcquireReleaseInfoNV& operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
61244     {
61245       *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this) = rhs;
61246       return *this;
61247     }
61248 
setPNextVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61249     Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ )
61250     {
61251       pNext = pNext_;
61252       return *this;
61253     }
61254 
setAcquireCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61255     Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ )
61256     {
61257       acquireCount = acquireCount_;
61258       return *this;
61259     }
61260 
setPAcquireSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61261     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const vk::DeviceMemory* pAcquireSyncs_ )
61262     {
61263       pAcquireSyncs = pAcquireSyncs_;
61264       return *this;
61265     }
61266 
setPAcquireKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61267     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ )
61268     {
61269       pAcquireKeys = pAcquireKeys_;
61270       return *this;
61271     }
61272 
setPAcquireTimeoutMillisecondsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61273     Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ )
61274     {
61275       pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
61276       return *this;
61277     }
61278 
setReleaseCountVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61279     Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ )
61280     {
61281       releaseCount = releaseCount_;
61282       return *this;
61283     }
61284 
setPReleaseSyncsVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61285     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const vk::DeviceMemory* pReleaseSyncs_ )
61286     {
61287       pReleaseSyncs = pReleaseSyncs_;
61288       return *this;
61289     }
61290 
setPReleaseKeysVULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61291     Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ )
61292     {
61293       pReleaseKeys = pReleaseKeys_;
61294       return *this;
61295     }
61296 
operator VkWin32KeyedMutexAcquireReleaseInfoNV const&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61297     operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const
61298     {
61299       return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
61300     }
61301 
operator VkWin32KeyedMutexAcquireReleaseInfoNV&VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61302     operator VkWin32KeyedMutexAcquireReleaseInfoNV &()
61303     {
61304       return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
61305     }
61306 
operator ==VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61307     bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const
61308     {
61309       return ( sType == rhs.sType )
61310           && ( pNext == rhs.pNext )
61311           && ( acquireCount == rhs.acquireCount )
61312           && ( pAcquireSyncs == rhs.pAcquireSyncs )
61313           && ( pAcquireKeys == rhs.pAcquireKeys )
61314           && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
61315           && ( releaseCount == rhs.releaseCount )
61316           && ( pReleaseSyncs == rhs.pReleaseSyncs )
61317           && ( pReleaseKeys == rhs.pReleaseKeys );
61318     }
61319 
operator !=VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV61320     bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const
61321     {
61322       return !operator==( rhs );
61323     }
61324 
61325   private:
61326     using layout::Win32KeyedMutexAcquireReleaseInfoNV::sType;
61327   };
61328   static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
61329   static_assert( std::is_standard_layout<Win32KeyedMutexAcquireReleaseInfoNV>::value, "struct wrapper is not a standard layout!" );
61330 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
61331 
61332 #ifdef VK_USE_PLATFORM_WIN32_KHR
61333 
61334   namespace layout
61335   {
61336     struct Win32SurfaceCreateInfoKHR
61337     {
61338     protected:
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::Win32SurfaceCreateInfoKHR61339       Win32SurfaceCreateInfoKHR( vk::Win32SurfaceCreateFlagsKHR flags_ = vk::Win32SurfaceCreateFlagsKHR(),
61340                                  HINSTANCE hinstance_ = 0,
61341                                  HWND hwnd_ = 0 )
61342         : flags( flags_ )
61343         , hinstance( hinstance_ )
61344         , hwnd( hwnd_ )
61345       {}
61346 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::Win32SurfaceCreateInfoKHR61347       Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs )
61348       {
61349         *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this) = rhs;
61350       }
61351 
operator =VULKAN_HPP_NAMESPACE::layout::Win32SurfaceCreateInfoKHR61352       Win32SurfaceCreateInfoKHR& operator=( VkWin32SurfaceCreateInfoKHR const & rhs )
61353       {
61354         *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this) = rhs;
61355         return *this;
61356       }
61357 
61358     public:
61359       vk::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
61360       const void* pNext = nullptr;
61361       vk::Win32SurfaceCreateFlagsKHR flags;
61362       HINSTANCE hinstance;
61363       HWND hwnd;
61364     };
61365     static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
61366   }
61367 
61368   struct Win32SurfaceCreateInfoKHR : public layout::Win32SurfaceCreateInfoKHR
61369   {
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61370     Win32SurfaceCreateInfoKHR( vk::Win32SurfaceCreateFlagsKHR flags_ = vk::Win32SurfaceCreateFlagsKHR(),
61371                                HINSTANCE hinstance_ = 0,
61372                                HWND hwnd_ = 0 )
61373       : layout::Win32SurfaceCreateInfoKHR( flags_, hinstance_, hwnd_ )
61374     {}
61375 
Win32SurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61376     Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs )
61377       : layout::Win32SurfaceCreateInfoKHR( rhs )
61378     {}
61379 
operator =VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61380     Win32SurfaceCreateInfoKHR& operator=( VkWin32SurfaceCreateInfoKHR const & rhs )
61381     {
61382       *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this) = rhs;
61383       return *this;
61384     }
61385 
setPNextVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61386     Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ )
61387     {
61388       pNext = pNext_;
61389       return *this;
61390     }
61391 
setFlagsVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61392     Win32SurfaceCreateInfoKHR & setFlags( vk::Win32SurfaceCreateFlagsKHR flags_ )
61393     {
61394       flags = flags_;
61395       return *this;
61396     }
61397 
setHinstanceVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61398     Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ )
61399     {
61400       hinstance = hinstance_;
61401       return *this;
61402     }
61403 
setHwndVULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61404     Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ )
61405     {
61406       hwnd = hwnd_;
61407       return *this;
61408     }
61409 
operator VkWin32SurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61410     operator VkWin32SurfaceCreateInfoKHR const&() const
61411     {
61412       return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
61413     }
61414 
operator VkWin32SurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61415     operator VkWin32SurfaceCreateInfoKHR &()
61416     {
61417       return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
61418     }
61419 
operator ==VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61420     bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const
61421     {
61422       return ( sType == rhs.sType )
61423           && ( pNext == rhs.pNext )
61424           && ( flags == rhs.flags )
61425           && ( hinstance == rhs.hinstance )
61426           && ( hwnd == rhs.hwnd );
61427     }
61428 
operator !=VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR61429     bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const
61430     {
61431       return !operator==( rhs );
61432     }
61433 
61434   private:
61435     using layout::Win32SurfaceCreateInfoKHR::sType;
61436   };
61437   static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
61438   static_assert( std::is_standard_layout<Win32SurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
61439 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
61440 
61441   namespace layout
61442   {
61443     struct WriteDescriptorSet
61444     {
61445     protected:
WriteDescriptorSetVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSet61446       WriteDescriptorSet( vk::DescriptorSet dstSet_ = vk::DescriptorSet(),
61447                           uint32_t dstBinding_ = 0,
61448                           uint32_t dstArrayElement_ = 0,
61449                           uint32_t descriptorCount_ = 0,
61450                           vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
61451                           const vk::DescriptorImageInfo* pImageInfo_ = nullptr,
61452                           const vk::DescriptorBufferInfo* pBufferInfo_ = nullptr,
61453                           const vk::BufferView* pTexelBufferView_ = nullptr )
61454         : dstSet( dstSet_ )
61455         , dstBinding( dstBinding_ )
61456         , dstArrayElement( dstArrayElement_ )
61457         , descriptorCount( descriptorCount_ )
61458         , descriptorType( descriptorType_ )
61459         , pImageInfo( pImageInfo_ )
61460         , pBufferInfo( pBufferInfo_ )
61461         , pTexelBufferView( pTexelBufferView_ )
61462       {}
61463 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSet61464       WriteDescriptorSet( VkWriteDescriptorSet const & rhs )
61465       {
61466         *reinterpret_cast<VkWriteDescriptorSet*>(this) = rhs;
61467       }
61468 
operator =VULKAN_HPP_NAMESPACE::layout::WriteDescriptorSet61469       WriteDescriptorSet& operator=( VkWriteDescriptorSet const & rhs )
61470       {
61471         *reinterpret_cast<VkWriteDescriptorSet*>(this) = rhs;
61472         return *this;
61473       }
61474 
61475     public:
61476       vk::StructureType sType = StructureType::eWriteDescriptorSet;
61477       const void* pNext = nullptr;
61478       vk::DescriptorSet dstSet;
61479       uint32_t dstBinding;
61480       uint32_t dstArrayElement;
61481       uint32_t descriptorCount;
61482       vk::DescriptorType descriptorType;
61483       const vk::DescriptorImageInfo* pImageInfo;
61484       const vk::DescriptorBufferInfo* pBufferInfo;
61485       const vk::BufferView* pTexelBufferView;
61486     };
61487     static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "layout struct and wrapper have different size!" );
61488   }
61489 
61490   struct WriteDescriptorSet : public layout::WriteDescriptorSet
61491   {
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet61492     WriteDescriptorSet( vk::DescriptorSet dstSet_ = vk::DescriptorSet(),
61493                         uint32_t dstBinding_ = 0,
61494                         uint32_t dstArrayElement_ = 0,
61495                         uint32_t descriptorCount_ = 0,
61496                         vk::DescriptorType descriptorType_ = vk::DescriptorType::eSampler,
61497                         const vk::DescriptorImageInfo* pImageInfo_ = nullptr,
61498                         const vk::DescriptorBufferInfo* pBufferInfo_ = nullptr,
61499                         const vk::BufferView* pTexelBufferView_ = nullptr )
61500       : layout::WriteDescriptorSet( dstSet_, dstBinding_, dstArrayElement_, descriptorCount_, descriptorType_, pImageInfo_, pBufferInfo_, pTexelBufferView_ )
61501     {}
61502 
WriteDescriptorSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet61503     WriteDescriptorSet( VkWriteDescriptorSet const & rhs )
61504       : layout::WriteDescriptorSet( rhs )
61505     {}
61506 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSet61507     WriteDescriptorSet& operator=( VkWriteDescriptorSet const & rhs )
61508     {
61509       *reinterpret_cast<VkWriteDescriptorSet*>(this) = rhs;
61510       return *this;
61511     }
61512 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSet61513     WriteDescriptorSet & setPNext( const void* pNext_ )
61514     {
61515       pNext = pNext_;
61516       return *this;
61517     }
61518 
setDstSetVULKAN_HPP_NAMESPACE::WriteDescriptorSet61519     WriteDescriptorSet & setDstSet( vk::DescriptorSet dstSet_ )
61520     {
61521       dstSet = dstSet_;
61522       return *this;
61523     }
61524 
setDstBindingVULKAN_HPP_NAMESPACE::WriteDescriptorSet61525     WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ )
61526     {
61527       dstBinding = dstBinding_;
61528       return *this;
61529     }
61530 
setDstArrayElementVULKAN_HPP_NAMESPACE::WriteDescriptorSet61531     WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ )
61532     {
61533       dstArrayElement = dstArrayElement_;
61534       return *this;
61535     }
61536 
setDescriptorCountVULKAN_HPP_NAMESPACE::WriteDescriptorSet61537     WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ )
61538     {
61539       descriptorCount = descriptorCount_;
61540       return *this;
61541     }
61542 
setDescriptorTypeVULKAN_HPP_NAMESPACE::WriteDescriptorSet61543     WriteDescriptorSet & setDescriptorType( vk::DescriptorType descriptorType_ )
61544     {
61545       descriptorType = descriptorType_;
61546       return *this;
61547     }
61548 
setPImageInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet61549     WriteDescriptorSet & setPImageInfo( const vk::DescriptorImageInfo* pImageInfo_ )
61550     {
61551       pImageInfo = pImageInfo_;
61552       return *this;
61553     }
61554 
setPBufferInfoVULKAN_HPP_NAMESPACE::WriteDescriptorSet61555     WriteDescriptorSet & setPBufferInfo( const vk::DescriptorBufferInfo* pBufferInfo_ )
61556     {
61557       pBufferInfo = pBufferInfo_;
61558       return *this;
61559     }
61560 
setPTexelBufferViewVULKAN_HPP_NAMESPACE::WriteDescriptorSet61561     WriteDescriptorSet & setPTexelBufferView( const vk::BufferView* pTexelBufferView_ )
61562     {
61563       pTexelBufferView = pTexelBufferView_;
61564       return *this;
61565     }
61566 
operator VkWriteDescriptorSet const&VULKAN_HPP_NAMESPACE::WriteDescriptorSet61567     operator VkWriteDescriptorSet const&() const
61568     {
61569       return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
61570     }
61571 
operator VkWriteDescriptorSet&VULKAN_HPP_NAMESPACE::WriteDescriptorSet61572     operator VkWriteDescriptorSet &()
61573     {
61574       return *reinterpret_cast<VkWriteDescriptorSet*>( this );
61575     }
61576 
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSet61577     bool operator==( WriteDescriptorSet const& rhs ) const
61578     {
61579       return ( sType == rhs.sType )
61580           && ( pNext == rhs.pNext )
61581           && ( dstSet == rhs.dstSet )
61582           && ( dstBinding == rhs.dstBinding )
61583           && ( dstArrayElement == rhs.dstArrayElement )
61584           && ( descriptorCount == rhs.descriptorCount )
61585           && ( descriptorType == rhs.descriptorType )
61586           && ( pImageInfo == rhs.pImageInfo )
61587           && ( pBufferInfo == rhs.pBufferInfo )
61588           && ( pTexelBufferView == rhs.pTexelBufferView );
61589     }
61590 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSet61591     bool operator!=( WriteDescriptorSet const& rhs ) const
61592     {
61593       return !operator==( rhs );
61594     }
61595 
61596   private:
61597     using layout::WriteDescriptorSet::sType;
61598   };
61599   static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
61600   static_assert( std::is_standard_layout<WriteDescriptorSet>::value, "struct wrapper is not a standard layout!" );
61601 
61602   namespace layout
61603   {
61604     struct WriteDescriptorSetAccelerationStructureNV
61605     {
61606     protected:
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetAccelerationStructureNV61607       WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = 0,
61608                                                  const vk::AccelerationStructureNV* pAccelerationStructures_ = nullptr )
61609         : accelerationStructureCount( accelerationStructureCount_ )
61610         , pAccelerationStructures( pAccelerationStructures_ )
61611       {}
61612 
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetAccelerationStructureNV61613       WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
61614       {
61615         *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(this) = rhs;
61616       }
61617 
operator =VULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetAccelerationStructureNV61618       WriteDescriptorSetAccelerationStructureNV& operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
61619       {
61620         *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(this) = rhs;
61621         return *this;
61622       }
61623 
61624     public:
61625       vk::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
61626       const void* pNext = nullptr;
61627       uint32_t accelerationStructureCount;
61628       const vk::AccelerationStructureNV* pAccelerationStructures;
61629     };
61630     static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "layout struct and wrapper have different size!" );
61631   }
61632 
61633   struct WriteDescriptorSetAccelerationStructureNV : public layout::WriteDescriptorSetAccelerationStructureNV
61634   {
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61635     WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = 0,
61636                                                const vk::AccelerationStructureNV* pAccelerationStructures_ = nullptr )
61637       : layout::WriteDescriptorSetAccelerationStructureNV( accelerationStructureCount_, pAccelerationStructures_ )
61638     {}
61639 
WriteDescriptorSetAccelerationStructureNVVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61640     WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
61641       : layout::WriteDescriptorSetAccelerationStructureNV( rhs )
61642     {}
61643 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61644     WriteDescriptorSetAccelerationStructureNV& operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
61645     {
61646       *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(this) = rhs;
61647       return *this;
61648     }
61649 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61650     WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ )
61651     {
61652       pNext = pNext_;
61653       return *this;
61654     }
61655 
setAccelerationStructureCountVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61656     WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ )
61657     {
61658       accelerationStructureCount = accelerationStructureCount_;
61659       return *this;
61660     }
61661 
setPAccelerationStructuresVULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61662     WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const vk::AccelerationStructureNV* pAccelerationStructures_ )
61663     {
61664       pAccelerationStructures = pAccelerationStructures_;
61665       return *this;
61666     }
61667 
operator VkWriteDescriptorSetAccelerationStructureNV const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61668     operator VkWriteDescriptorSetAccelerationStructureNV const&() const
61669     {
61670       return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>( this );
61671     }
61672 
operator VkWriteDescriptorSetAccelerationStructureNV&VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61673     operator VkWriteDescriptorSetAccelerationStructureNV &()
61674     {
61675       return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>( this );
61676     }
61677 
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61678     bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const
61679     {
61680       return ( sType == rhs.sType )
61681           && ( pNext == rhs.pNext )
61682           && ( accelerationStructureCount == rhs.accelerationStructureCount )
61683           && ( pAccelerationStructures == rhs.pAccelerationStructures );
61684     }
61685 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV61686     bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const
61687     {
61688       return !operator==( rhs );
61689     }
61690 
61691   private:
61692     using layout::WriteDescriptorSetAccelerationStructureNV::sType;
61693   };
61694   static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" );
61695   static_assert( std::is_standard_layout<WriteDescriptorSetAccelerationStructureNV>::value, "struct wrapper is not a standard layout!" );
61696 
61697   namespace layout
61698   {
61699     struct WriteDescriptorSetInlineUniformBlockEXT
61700     {
61701     protected:
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetInlineUniformBlockEXT61702       WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = 0,
61703                                                const void* pData_ = nullptr )
61704         : dataSize( dataSize_ )
61705         , pData( pData_ )
61706       {}
61707 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetInlineUniformBlockEXT61708       WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
61709       {
61710         *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this) = rhs;
61711       }
61712 
operator =VULKAN_HPP_NAMESPACE::layout::WriteDescriptorSetInlineUniformBlockEXT61713       WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
61714       {
61715         *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this) = rhs;
61716         return *this;
61717       }
61718 
61719     public:
61720       vk::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
61721       const void* pNext = nullptr;
61722       uint32_t dataSize;
61723       const void* pData;
61724     };
61725     static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "layout struct and wrapper have different size!" );
61726   }
61727 
61728   struct WriteDescriptorSetInlineUniformBlockEXT : public layout::WriteDescriptorSetInlineUniformBlockEXT
61729   {
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61730     WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = 0,
61731                                              const void* pData_ = nullptr )
61732       : layout::WriteDescriptorSetInlineUniformBlockEXT( dataSize_, pData_ )
61733     {}
61734 
WriteDescriptorSetInlineUniformBlockEXTVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61735     WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
61736       : layout::WriteDescriptorSetInlineUniformBlockEXT( rhs )
61737     {}
61738 
operator =VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61739     WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
61740     {
61741       *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this) = rhs;
61742       return *this;
61743     }
61744 
setPNextVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61745     WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ )
61746     {
61747       pNext = pNext_;
61748       return *this;
61749     }
61750 
setDataSizeVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61751     WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ )
61752     {
61753       dataSize = dataSize_;
61754       return *this;
61755     }
61756 
setPDataVULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61757     WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ )
61758     {
61759       pData = pData_;
61760       return *this;
61761     }
61762 
operator VkWriteDescriptorSetInlineUniformBlockEXT const&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61763     operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const
61764     {
61765       return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
61766     }
61767 
operator VkWriteDescriptorSetInlineUniformBlockEXT&VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61768     operator VkWriteDescriptorSetInlineUniformBlockEXT &()
61769     {
61770       return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
61771     }
61772 
operator ==VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61773     bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const
61774     {
61775       return ( sType == rhs.sType )
61776           && ( pNext == rhs.pNext )
61777           && ( dataSize == rhs.dataSize )
61778           && ( pData == rhs.pData );
61779     }
61780 
operator !=VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT61781     bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const
61782     {
61783       return !operator==( rhs );
61784     }
61785 
61786   private:
61787     using layout::WriteDescriptorSetInlineUniformBlockEXT::sType;
61788   };
61789   static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
61790   static_assert( std::is_standard_layout<WriteDescriptorSetInlineUniformBlockEXT>::value, "struct wrapper is not a standard layout!" );
61791 
61792 #ifdef VK_USE_PLATFORM_XCB_KHR
61793 
61794   namespace layout
61795   {
61796     struct XcbSurfaceCreateInfoKHR
61797     {
61798     protected:
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::XcbSurfaceCreateInfoKHR61799       XcbSurfaceCreateInfoKHR( vk::XcbSurfaceCreateFlagsKHR flags_ = vk::XcbSurfaceCreateFlagsKHR(),
61800                                xcb_connection_t* connection_ = nullptr,
61801                                xcb_window_t window_ = 0 )
61802         : flags( flags_ )
61803         , connection( connection_ )
61804         , window( window_ )
61805       {}
61806 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::XcbSurfaceCreateInfoKHR61807       XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs )
61808       {
61809         *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this) = rhs;
61810       }
61811 
operator =VULKAN_HPP_NAMESPACE::layout::XcbSurfaceCreateInfoKHR61812       XcbSurfaceCreateInfoKHR& operator=( VkXcbSurfaceCreateInfoKHR const & rhs )
61813       {
61814         *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this) = rhs;
61815         return *this;
61816       }
61817 
61818     public:
61819       vk::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
61820       const void* pNext = nullptr;
61821       vk::XcbSurfaceCreateFlagsKHR flags;
61822       xcb_connection_t* connection;
61823       xcb_window_t window;
61824     };
61825     static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
61826   }
61827 
61828   struct XcbSurfaceCreateInfoKHR : public layout::XcbSurfaceCreateInfoKHR
61829   {
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61830     XcbSurfaceCreateInfoKHR( vk::XcbSurfaceCreateFlagsKHR flags_ = vk::XcbSurfaceCreateFlagsKHR(),
61831                              xcb_connection_t* connection_ = nullptr,
61832                              xcb_window_t window_ = 0 )
61833       : layout::XcbSurfaceCreateInfoKHR( flags_, connection_, window_ )
61834     {}
61835 
XcbSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61836     XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs )
61837       : layout::XcbSurfaceCreateInfoKHR( rhs )
61838     {}
61839 
operator =VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61840     XcbSurfaceCreateInfoKHR& operator=( VkXcbSurfaceCreateInfoKHR const & rhs )
61841     {
61842       *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this) = rhs;
61843       return *this;
61844     }
61845 
setPNextVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61846     XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
61847     {
61848       pNext = pNext_;
61849       return *this;
61850     }
61851 
setFlagsVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61852     XcbSurfaceCreateInfoKHR & setFlags( vk::XcbSurfaceCreateFlagsKHR flags_ )
61853     {
61854       flags = flags_;
61855       return *this;
61856     }
61857 
setConnectionVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61858     XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ )
61859     {
61860       connection = connection_;
61861       return *this;
61862     }
61863 
setWindowVULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61864     XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ )
61865     {
61866       window = window_;
61867       return *this;
61868     }
61869 
operator VkXcbSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61870     operator VkXcbSurfaceCreateInfoKHR const&() const
61871     {
61872       return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
61873     }
61874 
operator VkXcbSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61875     operator VkXcbSurfaceCreateInfoKHR &()
61876     {
61877       return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
61878     }
61879 
operator ==VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61880     bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const
61881     {
61882       return ( sType == rhs.sType )
61883           && ( pNext == rhs.pNext )
61884           && ( flags == rhs.flags )
61885           && ( connection == rhs.connection )
61886           && ( window == rhs.window );
61887     }
61888 
operator !=VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR61889     bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const
61890     {
61891       return !operator==( rhs );
61892     }
61893 
61894   private:
61895     using layout::XcbSurfaceCreateInfoKHR::sType;
61896   };
61897   static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
61898   static_assert( std::is_standard_layout<XcbSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
61899 #endif /*VK_USE_PLATFORM_XCB_KHR*/
61900 
61901 #ifdef VK_USE_PLATFORM_XLIB_KHR
61902 
61903   namespace layout
61904   {
61905     struct XlibSurfaceCreateInfoKHR
61906     {
61907     protected:
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::XlibSurfaceCreateInfoKHR61908       XlibSurfaceCreateInfoKHR( vk::XlibSurfaceCreateFlagsKHR flags_ = vk::XlibSurfaceCreateFlagsKHR(),
61909                                 Display* dpy_ = nullptr,
61910                                 Window window_ = 0 )
61911         : flags( flags_ )
61912         , dpy( dpy_ )
61913         , window( window_ )
61914       {}
61915 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::layout::XlibSurfaceCreateInfoKHR61916       XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs )
61917       {
61918         *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this) = rhs;
61919       }
61920 
operator =VULKAN_HPP_NAMESPACE::layout::XlibSurfaceCreateInfoKHR61921       XlibSurfaceCreateInfoKHR& operator=( VkXlibSurfaceCreateInfoKHR const & rhs )
61922       {
61923         *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this) = rhs;
61924         return *this;
61925       }
61926 
61927     public:
61928       vk::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
61929       const void* pNext = nullptr;
61930       vk::XlibSurfaceCreateFlagsKHR flags;
61931       Display* dpy;
61932       Window window;
61933     };
61934     static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "layout struct and wrapper have different size!" );
61935   }
61936 
61937   struct XlibSurfaceCreateInfoKHR : public layout::XlibSurfaceCreateInfoKHR
61938   {
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61939     XlibSurfaceCreateInfoKHR( vk::XlibSurfaceCreateFlagsKHR flags_ = vk::XlibSurfaceCreateFlagsKHR(),
61940                               Display* dpy_ = nullptr,
61941                               Window window_ = 0 )
61942       : layout::XlibSurfaceCreateInfoKHR( flags_, dpy_, window_ )
61943     {}
61944 
XlibSurfaceCreateInfoKHRVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61945     XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs )
61946       : layout::XlibSurfaceCreateInfoKHR( rhs )
61947     {}
61948 
operator =VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61949     XlibSurfaceCreateInfoKHR& operator=( VkXlibSurfaceCreateInfoKHR const & rhs )
61950     {
61951       *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this) = rhs;
61952       return *this;
61953     }
61954 
setPNextVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61955     XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
61956     {
61957       pNext = pNext_;
61958       return *this;
61959     }
61960 
setFlagsVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61961     XlibSurfaceCreateInfoKHR & setFlags( vk::XlibSurfaceCreateFlagsKHR flags_ )
61962     {
61963       flags = flags_;
61964       return *this;
61965     }
61966 
setDpyVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61967     XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ )
61968     {
61969       dpy = dpy_;
61970       return *this;
61971     }
61972 
setWindowVULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61973     XlibSurfaceCreateInfoKHR & setWindow( Window window_ )
61974     {
61975       window = window_;
61976       return *this;
61977     }
61978 
operator VkXlibSurfaceCreateInfoKHR const&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61979     operator VkXlibSurfaceCreateInfoKHR const&() const
61980     {
61981       return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
61982     }
61983 
operator VkXlibSurfaceCreateInfoKHR&VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61984     operator VkXlibSurfaceCreateInfoKHR &()
61985     {
61986       return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
61987     }
61988 
operator ==VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61989     bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const
61990     {
61991       return ( sType == rhs.sType )
61992           && ( pNext == rhs.pNext )
61993           && ( flags == rhs.flags )
61994           && ( dpy == rhs.dpy )
61995           && ( window == rhs.window );
61996     }
61997 
operator !=VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR61998     bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const
61999     {
62000       return !operator==( rhs );
62001     }
62002 
62003   private:
62004     using layout::XlibSurfaceCreateInfoKHR::sType;
62005   };
62006   static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
62007   static_assert( std::is_standard_layout<XlibSurfaceCreateInfoKHR>::value, "struct wrapper is not a standard layout!" );
62008 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
62009 
62010   template<typename Dispatch>
createInstance(const vk::InstanceCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Instance * pInstance,Dispatch const & d)62011   VULKAN_HPP_INLINE Result createInstance( const vk::InstanceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Instance* pInstance, Dispatch const &d)
62012   {
62013     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkInstance*>( pInstance ) ) );
62014   }
62015 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62016   template<typename Dispatch>
createInstance(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)62017   VULKAN_HPP_INLINE ResultValueType<vk::Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
62018   {
62019     vk::Instance instance;
62020     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 ) ) );
62021     return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstance" );
62022   }
62023 #ifndef VULKAN_HPP_NO_SMART_HANDLE
62024   template<typename Dispatch>
createInstanceUnique(const InstanceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d)62025   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
62026   {
62027     vk::Instance instance;
62028     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 ) ) );
62029 
62030     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
62031     return createResultValue<Instance,Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter );
62032   }
62033 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
62034 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62035 
62036   template<typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,vk::ExtensionProperties * pProperties,Dispatch const & d)62037   VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, vk::ExtensionProperties* pProperties, Dispatch const &d)
62038   {
62039     return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
62040   }
62041 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62042   template<typename Allocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)62043   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d )
62044   {
62045     std::vector<ExtensionProperties,Allocator> properties;
62046     uint32_t propertyCount;
62047     Result result;
62048     do
62049     {
62050       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
62051       if ( ( result == Result::eSuccess ) && propertyCount )
62052       {
62053         properties.resize( propertyCount );
62054         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
62055       }
62056     } while ( result == Result::eIncomplete );
62057     if ( result == Result::eSuccess )
62058     {
62059       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
62060       properties.resize( propertyCount );
62061     }
62062     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
62063   }
62064   template<typename Allocator, typename Dispatch>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d)62065   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d )
62066   {
62067     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
62068     uint32_t propertyCount;
62069     Result result;
62070     do
62071     {
62072       result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
62073       if ( ( result == Result::eSuccess ) && propertyCount )
62074       {
62075         properties.resize( propertyCount );
62076         result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
62077       }
62078     } while ( result == Result::eIncomplete );
62079     if ( result == Result::eSuccess )
62080     {
62081       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
62082       properties.resize( propertyCount );
62083     }
62084     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
62085   }
62086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62087 
62088   template<typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,vk::LayerProperties * pProperties,Dispatch const & d)62089   VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, vk::LayerProperties* pProperties, Dispatch const &d)
62090   {
62091     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
62092   }
62093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62094   template<typename Allocator, typename Dispatch>
enumerateInstanceLayerProperties(Dispatch const & d)62095   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d )
62096   {
62097     std::vector<LayerProperties,Allocator> properties;
62098     uint32_t propertyCount;
62099     Result result;
62100     do
62101     {
62102       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
62103       if ( ( result == Result::eSuccess ) && propertyCount )
62104       {
62105         properties.resize( propertyCount );
62106         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
62107       }
62108     } while ( result == Result::eIncomplete );
62109     if ( result == Result::eSuccess )
62110     {
62111       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
62112       properties.resize( propertyCount );
62113     }
62114     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
62115   }
62116   template<typename Allocator, typename Dispatch>
enumerateInstanceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d)62117   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d )
62118   {
62119     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
62120     uint32_t propertyCount;
62121     Result result;
62122     do
62123     {
62124       result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
62125       if ( ( result == Result::eSuccess ) && propertyCount )
62126       {
62127         properties.resize( propertyCount );
62128         result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
62129       }
62130     } while ( result == Result::eIncomplete );
62131     if ( result == Result::eSuccess )
62132     {
62133       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
62134       properties.resize( propertyCount );
62135     }
62136     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
62137   }
62138 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62139 
62140   template<typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)62141   VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d)
62142   {
62143     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
62144   }
62145 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62146   template<typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)62147   VULKAN_HPP_INLINE ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d )
62148   {
62149     uint32_t apiVersion;
62150     Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
62151     return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceVersion" );
62152   }
62153 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62154 
62155   template<typename Dispatch>
begin(const vk::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const62156   VULKAN_HPP_INLINE Result CommandBuffer::begin( const vk::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d) const
62157   {
62158     return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( pBeginInfo ) ) );
62159   }
62160 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62161   template<typename Dispatch>
begin(const CommandBufferBeginInfo & beginInfo,Dispatch const & d) const62162   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d ) const
62163   {
62164     Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( &beginInfo ) ) );
62165     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::begin" );
62166   }
62167 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62168 
62169   template<typename Dispatch>
beginConditionalRenderingEXT(const vk::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const62170   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const vk::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d) const
62171   {
62172     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( pConditionalRenderingBegin ) );
62173   }
62174 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62175   template<typename Dispatch>
beginConditionalRenderingEXT(const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const62176   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d ) const
62177   {
62178     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( &conditionalRenderingBegin ) );
62179   }
62180 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62181 
62182   template<typename Dispatch>
beginDebugUtilsLabelEXT(const vk::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const62183   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
62184   {
62185     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
62186   }
62187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62188   template<typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const62189   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
62190   {
62191     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
62192   }
62193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62194 
62195 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62196   template<typename Dispatch>
beginQuery(vk::QueryPool queryPool,uint32_t query,vk::QueryControlFlags flags,Dispatch const & d) const62197   VULKAN_HPP_INLINE void CommandBuffer::beginQuery( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, Dispatch const &d) const
62198   {
62199     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
62200   }
62201 #else
62202   template<typename Dispatch>
beginQuery(vk::QueryPool queryPool,uint32_t query,vk::QueryControlFlags flags,Dispatch const & d) const62203   VULKAN_HPP_INLINE void CommandBuffer::beginQuery( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, Dispatch const &d ) const
62204   {
62205     d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
62206   }
62207 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62208 
62209 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62210   template<typename Dispatch>
beginQueryIndexedEXT(vk::QueryPool queryPool,uint32_t query,vk::QueryControlFlags flags,uint32_t index,Dispatch const & d) const62211   VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, uint32_t index, Dispatch const &d) const
62212   {
62213     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
62214   }
62215 #else
62216   template<typename Dispatch>
beginQueryIndexedEXT(vk::QueryPool queryPool,uint32_t query,vk::QueryControlFlags flags,uint32_t index,Dispatch const & d) const62217   VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, vk::QueryControlFlags flags, uint32_t index, Dispatch const &d ) const
62218   {
62219     d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
62220   }
62221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62222 
62223   template<typename Dispatch>
beginRenderPass(const vk::RenderPassBeginInfo * pRenderPassBegin,vk::SubpassContents contents,Dispatch const & d) const62224   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const vk::RenderPassBeginInfo* pRenderPassBegin, vk::SubpassContents contents, Dispatch const &d) const
62225   {
62226     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
62227   }
62228 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62229   template<typename Dispatch>
beginRenderPass(const RenderPassBeginInfo & renderPassBegin,vk::SubpassContents contents,Dispatch const & d) const62230   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, vk::SubpassContents contents, Dispatch const &d ) const
62231   {
62232     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
62233   }
62234 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62235 
62236   template<typename Dispatch>
beginRenderPass2KHR(const vk::RenderPassBeginInfo * pRenderPassBegin,const vk::SubpassBeginInfoKHR * pSubpassBeginInfo,Dispatch const & d) const62237   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const vk::RenderPassBeginInfo* pRenderPassBegin, const vk::SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d) const
62238   {
62239     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ) );
62240   }
62241 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62242   template<typename Dispatch>
beginRenderPass2KHR(const RenderPassBeginInfo & renderPassBegin,const SubpassBeginInfoKHR & subpassBeginInfo,Dispatch const & d) const62243   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d ) const
62244   {
62245     d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ) );
62246   }
62247 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62248 
62249   template<typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const vk::Buffer * pCounterBuffers,const vk::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const62250   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const vk::Buffer* pCounterBuffers, const vk::DeviceSize* pCounterBufferOffsets, Dispatch const &d) const
62251   {
62252     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
62253   }
62254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62255   template<typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const vk::Buffer> counterBuffers,ArrayProxy<const vk::DeviceSize> counterBufferOffsets,Dispatch const & d) const62256   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const vk::Buffer> counterBuffers, ArrayProxy<const vk::DeviceSize> counterBufferOffsets, Dispatch const &d ) const
62257   {
62258 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62259     VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
62260 #else
62261     if ( counterBuffers.size() != counterBufferOffsets.size() )
62262     {
62263       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
62264     }
62265 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62266     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
62267   }
62268 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62269 
62270   template<typename Dispatch>
bindDescriptorSets(vk::PipelineBindPoint pipelineBindPoint,vk::PipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const vk::DescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets,Dispatch const & d) const62271   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d) const
62272   {
62273     d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
62274   }
62275 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62276   template<typename Dispatch>
bindDescriptorSets(vk::PipelineBindPoint pipelineBindPoint,vk::PipelineLayout layout,uint32_t firstSet,ArrayProxy<const vk::DescriptorSet> descriptorSets,ArrayProxy<const uint32_t> dynamicOffsets,Dispatch const & d) const62277   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t firstSet, ArrayProxy<const vk::DescriptorSet> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d ) const
62278   {
62279     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() );
62280   }
62281 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62282 
62283 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62284   template<typename Dispatch>
bindIndexBuffer(vk::Buffer buffer,vk::DeviceSize offset,vk::IndexType indexType,Dispatch const & d) const62285   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( vk::Buffer buffer, vk::DeviceSize offset, vk::IndexType indexType, Dispatch const &d) const
62286   {
62287     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
62288   }
62289 #else
62290   template<typename Dispatch>
bindIndexBuffer(vk::Buffer buffer,vk::DeviceSize offset,vk::IndexType indexType,Dispatch const & d) const62291   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( vk::Buffer buffer, vk::DeviceSize offset, vk::IndexType indexType, Dispatch const &d ) const
62292   {
62293     d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
62294   }
62295 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62296 
62297 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62298   template<typename Dispatch>
bindPipeline(vk::PipelineBindPoint pipelineBindPoint,vk::Pipeline pipeline,Dispatch const & d) const62299   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( vk::PipelineBindPoint pipelineBindPoint, vk::Pipeline pipeline, Dispatch const &d) const
62300   {
62301     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
62302   }
62303 #else
62304   template<typename Dispatch>
bindPipeline(vk::PipelineBindPoint pipelineBindPoint,vk::Pipeline pipeline,Dispatch const & d) const62305   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( vk::PipelineBindPoint pipelineBindPoint, vk::Pipeline pipeline, Dispatch const &d ) const
62306   {
62307     d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
62308   }
62309 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62310 
62311 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62312   template<typename Dispatch>
bindShadingRateImageNV(vk::ImageView imageView,vk::ImageLayout imageLayout,Dispatch const & d) const62313   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( vk::ImageView imageView, vk::ImageLayout imageLayout, Dispatch const &d) const
62314   {
62315     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
62316   }
62317 #else
62318   template<typename Dispatch>
bindShadingRateImageNV(vk::ImageView imageView,vk::ImageLayout imageLayout,Dispatch const & d) const62319   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( vk::ImageView imageView, vk::ImageLayout imageLayout, Dispatch const &d ) const
62320   {
62321     d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
62322   }
62323 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62324 
62325   template<typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,uint32_t bindingCount,const vk::Buffer * pBuffers,const vk::DeviceSize * pOffsets,const vk::DeviceSize * pSizes,Dispatch const & d) const62326   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const vk::Buffer* pBuffers, const vk::DeviceSize* pOffsets, const vk::DeviceSize* pSizes, Dispatch const &d) const
62327   {
62328     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ), reinterpret_cast<const VkDeviceSize*>( pSizes ) );
62329   }
62330 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62331   template<typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,ArrayProxy<const vk::Buffer> buffers,ArrayProxy<const vk::DeviceSize> offsets,ArrayProxy<const vk::DeviceSize> sizes,Dispatch const & d) const62332   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const vk::Buffer> buffers, ArrayProxy<const vk::DeviceSize> offsets, ArrayProxy<const vk::DeviceSize> sizes, Dispatch const &d ) const
62333   {
62334 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62335     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
62336 #else
62337     if ( buffers.size() != offsets.size() )
62338     {
62339       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
62340     }
62341 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62342 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62343     VULKAN_HPP_ASSERT( buffers.size() == sizes.size() );
62344 #else
62345     if ( buffers.size() != sizes.size() )
62346     {
62347       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
62348     }
62349 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62350 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62351     VULKAN_HPP_ASSERT( offsets.size() == sizes.size() );
62352 #else
62353     if ( offsets.size() != sizes.size() )
62354     {
62355       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: offsets.size() != sizes.size()" );
62356     }
62357 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62358     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() ) );
62359   }
62360 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62361 
62362   template<typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,uint32_t bindingCount,const vk::Buffer * pBuffers,const vk::DeviceSize * pOffsets,Dispatch const & d) const62363   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const vk::Buffer* pBuffers, const vk::DeviceSize* pOffsets, Dispatch const &d) const
62364   {
62365     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ) );
62366   }
62367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62368   template<typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,ArrayProxy<const vk::Buffer> buffers,ArrayProxy<const vk::DeviceSize> offsets,Dispatch const & d) const62369   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const vk::Buffer> buffers, ArrayProxy<const vk::DeviceSize> offsets, Dispatch const &d ) const
62370   {
62371 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62372     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
62373 #else
62374     if ( buffers.size() != offsets.size() )
62375     {
62376       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
62377     }
62378 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62379     d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast<const VkBuffer*>( buffers.data() ), reinterpret_cast<const VkDeviceSize*>( offsets.data() ) );
62380   }
62381 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62382 
62383   template<typename Dispatch>
blitImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,uint32_t regionCount,const vk::ImageBlit * pRegions,vk::Filter filter,Dispatch const & d) const62384   VULKAN_HPP_INLINE void CommandBuffer::blitImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageBlit* pRegions, vk::Filter filter, Dispatch const &d) const
62385   {
62386     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 ) );
62387   }
62388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62389   template<typename Dispatch>
blitImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,ArrayProxy<const vk::ImageBlit> regions,vk::Filter filter,Dispatch const & d) const62390   VULKAN_HPP_INLINE void CommandBuffer::blitImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageBlit> regions, vk::Filter filter, Dispatch const &d ) const
62391   {
62392     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 ) );
62393   }
62394 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62395 
62396   template<typename Dispatch>
buildAccelerationStructureNV(const vk::AccelerationStructureInfoNV * pInfo,vk::Buffer instanceData,vk::DeviceSize instanceOffset,vk::Bool32 update,vk::AccelerationStructureNV dst,vk::AccelerationStructureNV src,vk::Buffer scratch,vk::DeviceSize scratchOffset,Dispatch const & d) const62397   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const vk::AccelerationStructureInfoNV* pInfo, vk::Buffer instanceData, vk::DeviceSize instanceOffset, vk::Bool32 update, vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::Buffer scratch, vk::DeviceSize scratchOffset, Dispatch const &d) const
62398   {
62399     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV*>( pInfo ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
62400   }
62401 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62402   template<typename Dispatch>
buildAccelerationStructureNV(const AccelerationStructureInfoNV & info,vk::Buffer instanceData,vk::DeviceSize instanceOffset,vk::Bool32 update,vk::AccelerationStructureNV dst,vk::AccelerationStructureNV src,vk::Buffer scratch,vk::DeviceSize scratchOffset,Dispatch const & d) const62403   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, vk::Buffer instanceData, vk::DeviceSize instanceOffset, vk::Bool32 update, vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::Buffer scratch, vk::DeviceSize scratchOffset, Dispatch const &d ) const
62404   {
62405     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV*>( &info ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
62406   }
62407 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62408 
62409   template<typename Dispatch>
clearAttachments(uint32_t attachmentCount,const vk::ClearAttachment * pAttachments,uint32_t rectCount,const vk::ClearRect * pRects,Dispatch const & d) const62410   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const vk::ClearAttachment* pAttachments, uint32_t rectCount, const vk::ClearRect* pRects, Dispatch const &d) const
62411   {
62412     d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment*>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect*>( pRects ) );
62413   }
62414 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62415   template<typename Dispatch>
clearAttachments(ArrayProxy<const vk::ClearAttachment> attachments,ArrayProxy<const vk::ClearRect> rects,Dispatch const & d) const62416   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy<const vk::ClearAttachment> attachments, ArrayProxy<const vk::ClearRect> rects, Dispatch const &d ) const
62417   {
62418     d.vkCmdClearAttachments( m_commandBuffer, attachments.size() , reinterpret_cast<const VkClearAttachment*>( attachments.data() ), rects.size() , reinterpret_cast<const VkClearRect*>( rects.data() ) );
62419   }
62420 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62421 
62422   template<typename Dispatch>
clearColorImage(vk::Image image,vk::ImageLayout imageLayout,const vk::ClearColorValue * pColor,uint32_t rangeCount,const vk::ImageSubresourceRange * pRanges,Dispatch const & d) const62423   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( vk::Image image, vk::ImageLayout imageLayout, const vk::ClearColorValue* pColor, uint32_t rangeCount, const vk::ImageSubresourceRange* pRanges, Dispatch const &d) const
62424   {
62425     d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue*>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
62426   }
62427 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62428   template<typename Dispatch>
clearColorImage(vk::Image image,vk::ImageLayout imageLayout,const ClearColorValue & color,ArrayProxy<const vk::ImageSubresourceRange> ranges,Dispatch const & d) const62429   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( vk::Image image, vk::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const vk::ImageSubresourceRange> ranges, Dispatch const &d ) const
62430   {
62431     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() ) );
62432   }
62433 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62434 
62435   template<typename Dispatch>
clearDepthStencilImage(vk::Image image,vk::ImageLayout imageLayout,const vk::ClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const vk::ImageSubresourceRange * pRanges,Dispatch const & d) const62436   VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( vk::Image image, vk::ImageLayout imageLayout, const vk::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const vk::ImageSubresourceRange* pRanges, Dispatch const &d) const
62437   {
62438     d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue*>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
62439   }
62440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62441   template<typename Dispatch>
clearDepthStencilImage(vk::Image image,vk::ImageLayout imageLayout,const ClearDepthStencilValue & depthStencil,ArrayProxy<const vk::ImageSubresourceRange> ranges,Dispatch const & d) const62442   VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( vk::Image image, vk::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const vk::ImageSubresourceRange> ranges, Dispatch const &d ) const
62443   {
62444     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() ) );
62445   }
62446 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62447 
62448 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62449   template<typename Dispatch>
copyAccelerationStructureNV(vk::AccelerationStructureNV dst,vk::AccelerationStructureNV src,vk::CopyAccelerationStructureModeNV mode,Dispatch const & d) const62450   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::CopyAccelerationStructureModeNV mode, Dispatch const &d) const
62451   {
62452     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkCopyAccelerationStructureModeNV>( mode ) );
62453   }
62454 #else
62455   template<typename Dispatch>
copyAccelerationStructureNV(vk::AccelerationStructureNV dst,vk::AccelerationStructureNV src,vk::CopyAccelerationStructureModeNV mode,Dispatch const & d) const62456   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( vk::AccelerationStructureNV dst, vk::AccelerationStructureNV src, vk::CopyAccelerationStructureModeNV mode, Dispatch const &d ) const
62457   {
62458     d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkCopyAccelerationStructureModeNV>( mode ) );
62459   }
62460 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62461 
62462   template<typename Dispatch>
copyBuffer(vk::Buffer srcBuffer,vk::Buffer dstBuffer,uint32_t regionCount,const vk::BufferCopy * pRegions,Dispatch const & d) const62463   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( vk::Buffer srcBuffer, vk::Buffer dstBuffer, uint32_t regionCount, const vk::BufferCopy* pRegions, Dispatch const &d) const
62464   {
62465     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy*>( pRegions ) );
62466   }
62467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62468   template<typename Dispatch>
copyBuffer(vk::Buffer srcBuffer,vk::Buffer dstBuffer,ArrayProxy<const vk::BufferCopy> regions,Dispatch const & d) const62469   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( vk::Buffer srcBuffer, vk::Buffer dstBuffer, ArrayProxy<const vk::BufferCopy> regions, Dispatch const &d ) const
62470   {
62471     d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferCopy*>( regions.data() ) );
62472   }
62473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62474 
62475   template<typename Dispatch>
copyBufferToImage(vk::Buffer srcBuffer,vk::Image dstImage,vk::ImageLayout dstImageLayout,uint32_t regionCount,const vk::BufferImageCopy * pRegions,Dispatch const & d) const62476   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( vk::Buffer srcBuffer, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::BufferImageCopy* pRegions, Dispatch const &d) const
62477   {
62478     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
62479   }
62480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62481   template<typename Dispatch>
copyBufferToImage(vk::Buffer srcBuffer,vk::Image dstImage,vk::ImageLayout dstImageLayout,ArrayProxy<const vk::BufferImageCopy> regions,Dispatch const & d) const62482   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( vk::Buffer srcBuffer, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::BufferImageCopy> regions, Dispatch const &d ) const
62483   {
62484     d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
62485   }
62486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62487 
62488   template<typename Dispatch>
copyImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,uint32_t regionCount,const vk::ImageCopy * pRegions,Dispatch const & d) const62489   VULKAN_HPP_INLINE void CommandBuffer::copyImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageCopy* pRegions, Dispatch const &d) const
62490   {
62491     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 ) );
62492   }
62493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62494   template<typename Dispatch>
copyImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,ArrayProxy<const vk::ImageCopy> regions,Dispatch const & d) const62495   VULKAN_HPP_INLINE void CommandBuffer::copyImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageCopy> regions, Dispatch const &d ) const
62496   {
62497     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() ) );
62498   }
62499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62500 
62501   template<typename Dispatch>
copyImageToBuffer(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Buffer dstBuffer,uint32_t regionCount,const vk::BufferImageCopy * pRegions,Dispatch const & d) const62502   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Buffer dstBuffer, uint32_t regionCount, const vk::BufferImageCopy* pRegions, Dispatch const &d) const
62503   {
62504     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
62505   }
62506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62507   template<typename Dispatch>
copyImageToBuffer(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Buffer dstBuffer,ArrayProxy<const vk::BufferImageCopy> regions,Dispatch const & d) const62508   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Buffer dstBuffer, ArrayProxy<const vk::BufferImageCopy> regions, Dispatch const &d ) const
62509   {
62510     d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
62511   }
62512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62513 
62514 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62515   template<typename Dispatch>
copyQueryPoolResults(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,vk::Buffer dstBuffer,vk::DeviceSize dstOffset,vk::DeviceSize stride,vk::QueryResultFlags flags,Dispatch const & d) const62516   VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d) const
62517   {
62518     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 ) );
62519   }
62520 #else
62521   template<typename Dispatch>
copyQueryPoolResults(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,vk::Buffer dstBuffer,vk::DeviceSize dstOffset,vk::DeviceSize stride,vk::QueryResultFlags flags,Dispatch const & d) const62522   VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d ) const
62523   {
62524     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 ) );
62525   }
62526 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62527 
62528   template<typename Dispatch>
debugMarkerBeginEXT(const vk::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const62529   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const vk::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const
62530   {
62531     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
62532   }
62533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62534   template<typename Dispatch>
debugMarkerBeginEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const62535   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const
62536   {
62537     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
62538   }
62539 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62540 
62541 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62542   template<typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const62543   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d) const
62544   {
62545     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
62546   }
62547 #else
62548   template<typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const62549   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d ) const
62550   {
62551     d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
62552   }
62553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62554 
62555   template<typename Dispatch>
debugMarkerInsertEXT(const vk::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const62556   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const vk::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const
62557   {
62558     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
62559   }
62560 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62561   template<typename Dispatch>
debugMarkerInsertEXT(const DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const62562   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const
62563   {
62564     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
62565   }
62566 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62567 
62568 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62569   template<typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const62570   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const
62571   {
62572     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
62573   }
62574 #else
62575   template<typename Dispatch>
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const62576   VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const
62577   {
62578     d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
62579   }
62580 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62581 
62582 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62583   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) const62584   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
62585   {
62586     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
62587   }
62588 #else
62589   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) const62590   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
62591   {
62592     d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
62593   }
62594 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62595 
62596 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62597   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) const62598   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
62599   {
62600     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
62601   }
62602 #else
62603   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) const62604   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
62605   {
62606     d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
62607   }
62608 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62609 
62610 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62611   template<typename Dispatch>
dispatchIndirect(vk::Buffer buffer,vk::DeviceSize offset,Dispatch const & d) const62612   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( vk::Buffer buffer, vk::DeviceSize offset, Dispatch const &d) const
62613   {
62614     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
62615   }
62616 #else
62617   template<typename Dispatch>
dispatchIndirect(vk::Buffer buffer,vk::DeviceSize offset,Dispatch const & d) const62618   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( vk::Buffer buffer, vk::DeviceSize offset, Dispatch const &d ) const
62619   {
62620     d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
62621   }
62622 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62623 
62624 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62625   template<typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const62626   VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d) const
62627   {
62628     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
62629   }
62630 #else
62631   template<typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const62632   VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d ) const
62633   {
62634     d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
62635   }
62636 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62637 
62638 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62639   template<typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const62640   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
62641   {
62642     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
62643   }
62644 #else
62645   template<typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const62646   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
62647   {
62648     d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
62649   }
62650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62651 
62652 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62653   template<typename Dispatch>
drawIndexedIndirect(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62654   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
62655   {
62656     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62657   }
62658 #else
62659   template<typename Dispatch>
drawIndexedIndirect(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62660   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
62661   {
62662     d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62663   }
62664 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62665 
62666 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62667   template<typename Dispatch>
drawIndexedIndirectCountAMD(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62668   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
62669   {
62670     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62671   }
62672 #else
62673   template<typename Dispatch>
drawIndexedIndirectCountAMD(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62674   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
62675   {
62676     d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62677   }
62678 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62679 
62680 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62681   template<typename Dispatch>
drawIndexedIndirectCountKHR(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62682   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
62683   {
62684     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62685   }
62686 #else
62687   template<typename Dispatch>
drawIndexedIndirectCountKHR(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62688   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
62689   {
62690     d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62691   }
62692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62693 
62694 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62695   template<typename Dispatch>
drawIndirect(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62696   VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
62697   {
62698     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62699   }
62700 #else
62701   template<typename Dispatch>
drawIndirect(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62702   VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
62703   {
62704     d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62705   }
62706 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62707 
62708 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62709   template<typename Dispatch>
drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,vk::Buffer counterBuffer,vk::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride,Dispatch const & d) const62710   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, vk::Buffer counterBuffer, vk::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d) const
62711   {
62712     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
62713   }
62714 #else
62715   template<typename Dispatch>
drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,vk::Buffer counterBuffer,vk::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride,Dispatch const & d) const62716   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, vk::Buffer counterBuffer, vk::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d ) const
62717   {
62718     d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
62719   }
62720 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62721 
62722 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62723   template<typename Dispatch>
drawIndirectCountAMD(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62724   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
62725   {
62726     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62727   }
62728 #else
62729   template<typename Dispatch>
drawIndirectCountAMD(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62730   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
62731   {
62732     d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62733   }
62734 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62735 
62736 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62737   template<typename Dispatch>
drawIndirectCountKHR(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62738   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
62739   {
62740     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62741   }
62742 #else
62743   template<typename Dispatch>
drawIndirectCountKHR(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62744   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
62745   {
62746     d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62747   }
62748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62749 
62750 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62751   template<typename Dispatch>
drawMeshTasksIndirectCountNV(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62752   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
62753   {
62754     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62755   }
62756 #else
62757   template<typename Dispatch>
drawMeshTasksIndirectCountNV(vk::Buffer buffer,vk::DeviceSize offset,vk::Buffer countBuffer,vk::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const62758   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( vk::Buffer buffer, vk::DeviceSize offset, vk::Buffer countBuffer, vk::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
62759   {
62760     d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
62761   }
62762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62763 
62764 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62765   template<typename Dispatch>
drawMeshTasksIndirectNV(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62766   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
62767   {
62768     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62769   }
62770 #else
62771   template<typename Dispatch>
drawMeshTasksIndirectNV(vk::Buffer buffer,vk::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const62772   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( vk::Buffer buffer, vk::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
62773   {
62774     d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
62775   }
62776 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62777 
62778 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62779   template<typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const62780   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d) const
62781   {
62782     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
62783   }
62784 #else
62785   template<typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const62786   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d ) const
62787   {
62788     d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
62789   }
62790 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62791 
62792 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62793   template<typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const62794   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d) const
62795   {
62796     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
62797   }
62798 #else
62799   template<typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const62800   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d ) const
62801   {
62802     d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
62803   }
62804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62805 
62806 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62807   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const62808   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d) const
62809   {
62810     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
62811   }
62812 #else
62813   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const62814   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d ) const
62815   {
62816     d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
62817   }
62818 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62819 
62820 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62821   template<typename Dispatch>
endQuery(vk::QueryPool queryPool,uint32_t query,Dispatch const & d) const62822   VULKAN_HPP_INLINE void CommandBuffer::endQuery( vk::QueryPool queryPool, uint32_t query, Dispatch const &d) const
62823   {
62824     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
62825   }
62826 #else
62827   template<typename Dispatch>
endQuery(vk::QueryPool queryPool,uint32_t query,Dispatch const & d) const62828   VULKAN_HPP_INLINE void CommandBuffer::endQuery( vk::QueryPool queryPool, uint32_t query, Dispatch const &d ) const
62829   {
62830     d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
62831   }
62832 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62833 
62834 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62835   template<typename Dispatch>
endQueryIndexedEXT(vk::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const62836   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d) const
62837   {
62838     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
62839   }
62840 #else
62841   template<typename Dispatch>
endQueryIndexedEXT(vk::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const62842   VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( vk::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d ) const
62843   {
62844     d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
62845   }
62846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62847 
62848 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62849   template<typename Dispatch>
endRenderPass(Dispatch const & d) const62850   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d) const
62851   {
62852     d.vkCmdEndRenderPass( m_commandBuffer );
62853   }
62854 #else
62855   template<typename Dispatch>
endRenderPass(Dispatch const & d) const62856   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d ) const
62857   {
62858     d.vkCmdEndRenderPass( m_commandBuffer );
62859   }
62860 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62861 
62862   template<typename Dispatch>
endRenderPass2KHR(const vk::SubpassEndInfoKHR * pSubpassEndInfo,Dispatch const & d) const62863   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const vk::SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const
62864   {
62865     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) );
62866   }
62867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62868   template<typename Dispatch>
endRenderPass2KHR(const SubpassEndInfoKHR & subpassEndInfo,Dispatch const & d) const62869   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const
62870   {
62871     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) );
62872   }
62873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62874 
62875   template<typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const vk::Buffer * pCounterBuffers,const vk::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const62876   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const vk::Buffer* pCounterBuffers, const vk::DeviceSize* pCounterBufferOffsets, Dispatch const &d) const
62877   {
62878     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
62879   }
62880 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62881   template<typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const vk::Buffer> counterBuffers,ArrayProxy<const vk::DeviceSize> counterBufferOffsets,Dispatch const & d) const62882   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const vk::Buffer> counterBuffers, ArrayProxy<const vk::DeviceSize> counterBufferOffsets, Dispatch const &d ) const
62883   {
62884 #ifdef VULKAN_HPP_NO_EXCEPTIONS
62885     VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
62886 #else
62887     if ( counterBuffers.size() != counterBufferOffsets.size() )
62888     {
62889       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
62890     }
62891 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
62892     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
62893   }
62894 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62895 
62896   template<typename Dispatch>
executeCommands(uint32_t commandBufferCount,const vk::CommandBuffer * pCommandBuffers,Dispatch const & d) const62897   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d) const
62898   {
62899     d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
62900   }
62901 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62902   template<typename Dispatch>
executeCommands(ArrayProxy<const vk::CommandBuffer> commandBuffers,Dispatch const & d) const62903   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d ) const
62904   {
62905     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
62906   }
62907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62908 
62909 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62910   template<typename Dispatch>
fillBuffer(vk::Buffer dstBuffer,vk::DeviceSize dstOffset,vk::DeviceSize size,uint32_t data,Dispatch const & d) const62911   VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize size, uint32_t data, Dispatch const &d) const
62912   {
62913     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
62914   }
62915 #else
62916   template<typename Dispatch>
fillBuffer(vk::Buffer dstBuffer,vk::DeviceSize dstOffset,vk::DeviceSize size,uint32_t data,Dispatch const & d) const62917   VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize size, uint32_t data, Dispatch const &d ) const
62918   {
62919     d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
62920   }
62921 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62922 
62923   template<typename Dispatch>
insertDebugUtilsLabelEXT(const vk::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const62924   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
62925   {
62926     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
62927   }
62928 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62929   template<typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const62930   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
62931   {
62932     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
62933   }
62934 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62935 
62936 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
62937   template<typename Dispatch>
nextSubpass(vk::SubpassContents contents,Dispatch const & d) const62938   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( vk::SubpassContents contents, Dispatch const &d) const
62939   {
62940     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
62941   }
62942 #else
62943   template<typename Dispatch>
nextSubpass(vk::SubpassContents contents,Dispatch const & d) const62944   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( vk::SubpassContents contents, Dispatch const &d ) const
62945   {
62946     d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
62947   }
62948 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62949 
62950   template<typename Dispatch>
nextSubpass2KHR(const vk::SubpassBeginInfoKHR * pSubpassBeginInfo,const vk::SubpassEndInfoKHR * pSubpassEndInfo,Dispatch const & d) const62951   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const vk::SubpassBeginInfoKHR* pSubpassBeginInfo, const vk::SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const
62952   {
62953     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) );
62954   }
62955 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62956   template<typename Dispatch>
nextSubpass2KHR(const SubpassBeginInfoKHR & subpassBeginInfo,const SubpassEndInfoKHR & subpassEndInfo,Dispatch const & d) const62957   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const
62958   {
62959     d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) );
62960   }
62961 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62962 
62963   template<typename Dispatch>
pipelineBarrier(vk::PipelineStageFlags srcStageMask,vk::PipelineStageFlags dstStageMask,vk::DependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const vk::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const vk::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const vk::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const62964   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, vk::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const vk::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const vk::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const vk::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const
62965   {
62966     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 ) );
62967   }
62968 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62969   template<typename Dispatch>
pipelineBarrier(vk::PipelineStageFlags srcStageMask,vk::PipelineStageFlags dstStageMask,vk::DependencyFlags dependencyFlags,ArrayProxy<const vk::MemoryBarrier> memoryBarriers,ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers,ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers,Dispatch const & d) const62970   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, vk::DependencyFlags dependencyFlags, ArrayProxy<const vk::MemoryBarrier> memoryBarriers, ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const
62971   {
62972     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() ) );
62973   }
62974 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62975 
62976   template<typename Dispatch>
processCommandsNVX(const vk::CmdProcessCommandsInfoNVX * pProcessCommandsInfo,Dispatch const & d) const62977   VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const vk::CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d) const
62978   {
62979     d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( pProcessCommandsInfo ) );
62980   }
62981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62982   template<typename Dispatch>
processCommandsNVX(const CmdProcessCommandsInfoNVX & processCommandsInfo,Dispatch const & d) const62983   VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d ) const
62984   {
62985     d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( &processCommandsInfo ) );
62986   }
62987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
62988 
62989   template<typename Dispatch>
pushConstants(vk::PipelineLayout layout,vk::ShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues,Dispatch const & d) const62990   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( vk::PipelineLayout layout, vk::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d) const
62991   {
62992     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
62993   }
62994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
62995   template<typename T, typename Dispatch>
pushConstants(vk::PipelineLayout layout,vk::ShaderStageFlags stageFlags,uint32_t offset,ArrayProxy<const T> values,Dispatch const & d) const62996   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( vk::PipelineLayout layout, vk::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d ) const
62997   {
62998     d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ) , reinterpret_cast<const void*>( values.data() ) );
62999   }
63000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63001 
63002   template<typename Dispatch>
pushDescriptorSetKHR(vk::PipelineBindPoint pipelineBindPoint,vk::PipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const vk::WriteDescriptorSet * pDescriptorWrites,Dispatch const & d) const63003   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const vk::WriteDescriptorSet* pDescriptorWrites, Dispatch const &d) const
63004   {
63005     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ) );
63006   }
63007 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63008   template<typename Dispatch>
pushDescriptorSetKHR(vk::PipelineBindPoint pipelineBindPoint,vk::PipelineLayout layout,uint32_t set,ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites,Dispatch const & d) const63009   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( vk::PipelineBindPoint pipelineBindPoint, vk::PipelineLayout layout, uint32_t set, ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites, Dispatch const &d ) const
63010   {
63011     d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ) );
63012   }
63013 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63014 
63015 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63016   template<typename Dispatch>
pushDescriptorSetWithTemplateKHR(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,vk::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const63017   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, vk::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d) const
63018   {
63019     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
63020   }
63021 #else
63022   template<typename Dispatch>
pushDescriptorSetWithTemplateKHR(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,vk::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const63023   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, vk::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d ) const
63024   {
63025     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
63026   }
63027 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63028 
63029   template<typename Dispatch>
reserveSpaceForCommandsNVX(const vk::CmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo,Dispatch const & d) const63030   VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const vk::CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d) const
63031   {
63032     d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( pReserveSpaceInfo ) );
63033   }
63034 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63035   template<typename Dispatch>
reserveSpaceForCommandsNVX(const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo,Dispatch const & d) const63036   VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d ) const
63037   {
63038     d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( &reserveSpaceInfo ) );
63039   }
63040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63041 
63042 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63043   template<typename Dispatch>
resetEvent(vk::Event event,vk::PipelineStageFlags stageMask,Dispatch const & d) const63044   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d) const
63045   {
63046     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
63047   }
63048 #else
63049   template<typename Dispatch>
resetEvent(vk::Event event,vk::PipelineStageFlags stageMask,Dispatch const & d) const63050   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d ) const
63051   {
63052     d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
63053   }
63054 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63055 
63056 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63057   template<typename Dispatch>
resetQueryPool(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const63058   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const
63059   {
63060     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
63061   }
63062 #else
63063   template<typename Dispatch>
resetQueryPool(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const63064   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const
63065   {
63066     d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
63067   }
63068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63069 
63070   template<typename Dispatch>
resolveImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,uint32_t regionCount,const vk::ImageResolve * pRegions,Dispatch const & d) const63071   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, uint32_t regionCount, const vk::ImageResolve* pRegions, Dispatch const &d) const
63072   {
63073     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 ) );
63074   }
63075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63076   template<typename Dispatch>
resolveImage(vk::Image srcImage,vk::ImageLayout srcImageLayout,vk::Image dstImage,vk::ImageLayout dstImageLayout,ArrayProxy<const vk::ImageResolve> regions,Dispatch const & d) const63077   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( vk::Image srcImage, vk::ImageLayout srcImageLayout, vk::Image dstImage, vk::ImageLayout dstImageLayout, ArrayProxy<const vk::ImageResolve> regions, Dispatch const &d ) const
63078   {
63079     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() ) );
63080   }
63081 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63082 
63083 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63084   template<typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const63085   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d) const
63086   {
63087     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
63088   }
63089 #else
63090   template<typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const63091   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d ) const
63092   {
63093     d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
63094   }
63095 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63096 
63097 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63098   template<typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const63099   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d) const
63100   {
63101     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
63102   }
63103 #else
63104   template<typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const63105   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d ) const
63106   {
63107     d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
63108   }
63109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63110 
63111   template<typename Dispatch>
setCoarseSampleOrderNV(vk::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const vk::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const63112   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( vk::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const vk::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d) const
63113   {
63114     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( pCustomSampleOrders ) );
63115   }
63116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63117   template<typename Dispatch>
setCoarseSampleOrderNV(vk::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const vk::CoarseSampleOrderCustomNV> customSampleOrders,Dispatch const & d) const63118   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( vk::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const vk::CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d ) const
63119   {
63120     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size() , reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( customSampleOrders.data() ) );
63121   }
63122 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63123 
63124 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63125   template<typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const63126   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d) const
63127   {
63128     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
63129   }
63130 #else
63131   template<typename Dispatch>
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const63132   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d ) const
63133   {
63134     d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
63135   }
63136 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63137 
63138 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63139   template<typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const63140   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d) const
63141   {
63142     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
63143   }
63144 #else
63145   template<typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const63146   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d ) const
63147   {
63148     d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
63149   }
63150 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63151 
63152 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63153   template<typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const63154   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d) const
63155   {
63156     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
63157   }
63158 #else
63159   template<typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const63160   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d ) const
63161   {
63162     d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
63163   }
63164 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63165 
63166 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63167   template<typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const63168   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d) const
63169   {
63170     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
63171   }
63172 #else
63173   template<typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const63174   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d ) const
63175   {
63176     d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
63177   }
63178 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63179 
63180   template<typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const vk::Rect2D * pDiscardRectangles,Dispatch const & d) const63181   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const vk::Rect2D* pDiscardRectangles, Dispatch const &d) const
63182   {
63183     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D*>( pDiscardRectangles ) );
63184   }
63185 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63186   template<typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const vk::Rect2D> discardRectangles,Dispatch const & d) const63187   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const vk::Rect2D> discardRectangles, Dispatch const &d ) const
63188   {
63189     d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size() , reinterpret_cast<const VkRect2D*>( discardRectangles.data() ) );
63190   }
63191 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63192 
63193 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63194   template<typename Dispatch>
setEvent(vk::Event event,vk::PipelineStageFlags stageMask,Dispatch const & d) const63195   VULKAN_HPP_INLINE void CommandBuffer::setEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d) const
63196   {
63197     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
63198   }
63199 #else
63200   template<typename Dispatch>
setEvent(vk::Event event,vk::PipelineStageFlags stageMask,Dispatch const & d) const63201   VULKAN_HPP_INLINE void CommandBuffer::setEvent( vk::Event event, vk::PipelineStageFlags stageMask, Dispatch const &d ) const
63202   {
63203     d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
63204   }
63205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63206 
63207   template<typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const vk::Rect2D * pExclusiveScissors,Dispatch const & d) const63208   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const vk::Rect2D* pExclusiveScissors, Dispatch const &d) const
63209   {
63210     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D*>( pExclusiveScissors ) );
63211   }
63212 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63213   template<typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const vk::Rect2D> exclusiveScissors,Dispatch const & d) const63214   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const vk::Rect2D> exclusiveScissors, Dispatch const &d ) const
63215   {
63216     d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size() , reinterpret_cast<const VkRect2D*>( exclusiveScissors.data() ) );
63217   }
63218 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63219 
63220 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63221   template<typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const63222   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d) const
63223   {
63224     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
63225   }
63226 #else
63227   template<typename Dispatch>
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const63228   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d ) const
63229   {
63230     d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern );
63231   }
63232 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63233 
63234 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63235   template<typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const63236   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d) const
63237   {
63238     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
63239   }
63240 #else
63241   template<typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const63242   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d ) const
63243   {
63244     d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
63245   }
63246 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63247 
63248   template<typename Dispatch>
setPerformanceMarkerINTEL(const vk::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const63249   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const vk::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const
63250   {
63251     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( pMarkerInfo ) ) );
63252   }
63253 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63254   template<typename Dispatch>
setPerformanceMarkerINTEL(const PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const63255   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
63256   {
63257     Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( &markerInfo ) ) );
63258     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceMarkerINTEL" );
63259   }
63260 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63261 
63262   template<typename Dispatch>
setPerformanceOverrideINTEL(const vk::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const63263   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const vk::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d) const
63264   {
63265     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( pOverrideInfo ) ) );
63266   }
63267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63268   template<typename Dispatch>
setPerformanceOverrideINTEL(const PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const63269   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d ) const
63270   {
63271     Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( &overrideInfo ) ) );
63272     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceOverrideINTEL" );
63273   }
63274 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63275 
63276   template<typename Dispatch>
setPerformanceStreamMarkerINTEL(const vk::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const63277   VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const vk::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const
63278   {
63279     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( pMarkerInfo ) ) );
63280   }
63281 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63282   template<typename Dispatch>
setPerformanceStreamMarkerINTEL(const PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const63283   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
63284   {
63285     Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( &markerInfo ) ) );
63286     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceStreamMarkerINTEL" );
63287   }
63288 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63289 
63290   template<typename Dispatch>
setSampleLocationsEXT(const vk::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const63291   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const vk::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d) const
63292   {
63293     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( pSampleLocationsInfo ) );
63294   }
63295 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63296   template<typename Dispatch>
setSampleLocationsEXT(const SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const63297   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d ) const
63298   {
63299     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( &sampleLocationsInfo ) );
63300   }
63301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63302 
63303   template<typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const vk::Rect2D * pScissors,Dispatch const & d) const63304   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const vk::Rect2D* pScissors, Dispatch const &d) const
63305   {
63306     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D*>( pScissors ) );
63307   }
63308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63309   template<typename Dispatch>
setScissor(uint32_t firstScissor,ArrayProxy<const vk::Rect2D> scissors,Dispatch const & d) const63310   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const vk::Rect2D> scissors, Dispatch const &d ) const
63311   {
63312     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size() , reinterpret_cast<const VkRect2D*>( scissors.data() ) );
63313   }
63314 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63315 
63316 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63317   template<typename Dispatch>
setStencilCompareMask(vk::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const63318   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( vk::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d) const
63319   {
63320     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
63321   }
63322 #else
63323   template<typename Dispatch>
setStencilCompareMask(vk::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const63324   VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( vk::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d ) const
63325   {
63326     d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
63327   }
63328 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63329 
63330 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63331   template<typename Dispatch>
setStencilReference(vk::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const63332   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( vk::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d) const
63333   {
63334     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
63335   }
63336 #else
63337   template<typename Dispatch>
setStencilReference(vk::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const63338   VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( vk::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d ) const
63339   {
63340     d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
63341   }
63342 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63343 
63344 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63345   template<typename Dispatch>
setStencilWriteMask(vk::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const63346   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( vk::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d) const
63347   {
63348     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
63349   }
63350 #else
63351   template<typename Dispatch>
setStencilWriteMask(vk::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const63352   VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( vk::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d ) const
63353   {
63354     d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
63355   }
63356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63357 
63358   template<typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const vk::Viewport * pViewports,Dispatch const & d) const63359   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const vk::Viewport* pViewports, Dispatch const &d) const
63360   {
63361     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport*>( pViewports ) );
63362   }
63363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63364   template<typename Dispatch>
setViewport(uint32_t firstViewport,ArrayProxy<const vk::Viewport> viewports,Dispatch const & d) const63365   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const vk::Viewport> viewports, Dispatch const &d ) const
63366   {
63367     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size() , reinterpret_cast<const VkViewport*>( viewports.data() ) );
63368   }
63369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63370 
63371   template<typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const vk::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const63372   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const vk::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d) const
63373   {
63374     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV*>( pShadingRatePalettes ) );
63375   }
63376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63377   template<typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const vk::ShadingRatePaletteNV> shadingRatePalettes,Dispatch const & d) const63378   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const vk::ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d ) const
63379   {
63380     d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size() , reinterpret_cast<const VkShadingRatePaletteNV*>( shadingRatePalettes.data() ) );
63381   }
63382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63383 
63384   template<typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const vk::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const63385   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const vk::ViewportWScalingNV* pViewportWScalings, Dispatch const &d) const
63386   {
63387     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV*>( pViewportWScalings ) );
63388   }
63389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63390   template<typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const vk::ViewportWScalingNV> viewportWScalings,Dispatch const & d) const63391   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const vk::ViewportWScalingNV> viewportWScalings, Dispatch const &d ) const
63392   {
63393     d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size() , reinterpret_cast<const VkViewportWScalingNV*>( viewportWScalings.data() ) );
63394   }
63395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63396 
63397 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63398   template<typename Dispatch>
traceRaysNV(vk::Buffer raygenShaderBindingTableBuffer,vk::DeviceSize raygenShaderBindingOffset,vk::Buffer missShaderBindingTableBuffer,vk::DeviceSize missShaderBindingOffset,vk::DeviceSize missShaderBindingStride,vk::Buffer hitShaderBindingTableBuffer,vk::DeviceSize hitShaderBindingOffset,vk::DeviceSize hitShaderBindingStride,vk::Buffer callableShaderBindingTableBuffer,vk::DeviceSize callableShaderBindingOffset,vk::DeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const63399   VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( vk::Buffer raygenShaderBindingTableBuffer, vk::DeviceSize raygenShaderBindingOffset, vk::Buffer missShaderBindingTableBuffer, vk::DeviceSize missShaderBindingOffset, vk::DeviceSize missShaderBindingStride, vk::Buffer hitShaderBindingTableBuffer, vk::DeviceSize hitShaderBindingOffset, vk::DeviceSize hitShaderBindingStride, vk::Buffer callableShaderBindingTableBuffer, vk::DeviceSize callableShaderBindingOffset, vk::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d) const
63400   {
63401     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 );
63402   }
63403 #else
63404   template<typename Dispatch>
traceRaysNV(vk::Buffer raygenShaderBindingTableBuffer,vk::DeviceSize raygenShaderBindingOffset,vk::Buffer missShaderBindingTableBuffer,vk::DeviceSize missShaderBindingOffset,vk::DeviceSize missShaderBindingStride,vk::Buffer hitShaderBindingTableBuffer,vk::DeviceSize hitShaderBindingOffset,vk::DeviceSize hitShaderBindingStride,vk::Buffer callableShaderBindingTableBuffer,vk::DeviceSize callableShaderBindingOffset,vk::DeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const63405   VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( vk::Buffer raygenShaderBindingTableBuffer, vk::DeviceSize raygenShaderBindingOffset, vk::Buffer missShaderBindingTableBuffer, vk::DeviceSize missShaderBindingOffset, vk::DeviceSize missShaderBindingStride, vk::Buffer hitShaderBindingTableBuffer, vk::DeviceSize hitShaderBindingOffset, vk::DeviceSize hitShaderBindingStride, vk::Buffer callableShaderBindingTableBuffer, vk::DeviceSize callableShaderBindingOffset, vk::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d ) const
63406   {
63407     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 );
63408   }
63409 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63410 
63411   template<typename Dispatch>
updateBuffer(vk::Buffer dstBuffer,vk::DeviceSize dstOffset,vk::DeviceSize dataSize,const void * pData,Dispatch const & d) const63412   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, vk::DeviceSize dataSize, const void* pData, Dispatch const &d) const
63413   {
63414     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
63415   }
63416 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63417   template<typename T, typename Dispatch>
updateBuffer(vk::Buffer dstBuffer,vk::DeviceSize dstOffset,ArrayProxy<const T> data,Dispatch const & d) const63418   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( vk::Buffer dstBuffer, vk::DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d ) const
63419   {
63420     d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ) , reinterpret_cast<const void*>( data.data() ) );
63421   }
63422 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63423 
63424   template<typename Dispatch>
waitEvents(uint32_t eventCount,const vk::Event * pEvents,vk::PipelineStageFlags srcStageMask,vk::PipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const vk::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const vk::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const vk::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const63425   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const vk::Event* pEvents, vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const vk::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const vk::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const vk::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const
63426   {
63427     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 ) );
63428   }
63429 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63430   template<typename Dispatch>
waitEvents(ArrayProxy<const vk::Event> events,vk::PipelineStageFlags srcStageMask,vk::PipelineStageFlags dstStageMask,ArrayProxy<const vk::MemoryBarrier> memoryBarriers,ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers,ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers,Dispatch const & d) const63431   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy<const vk::Event> events, vk::PipelineStageFlags srcStageMask, vk::PipelineStageFlags dstStageMask, ArrayProxy<const vk::MemoryBarrier> memoryBarriers, ArrayProxy<const vk::BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const vk::ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const
63432   {
63433     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() ) );
63434   }
63435 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63436 
63437   template<typename Dispatch>
writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount,const vk::AccelerationStructureNV * pAccelerationStructures,vk::QueryType queryType,vk::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const63438   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const vk::AccelerationStructureNV* pAccelerationStructures, vk::QueryType queryType, vk::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d) const
63439   {
63440     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureNV*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
63441   }
63442 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63443   template<typename Dispatch>
writeAccelerationStructuresPropertiesNV(ArrayProxy<const vk::AccelerationStructureNV> accelerationStructures,vk::QueryType queryType,vk::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const63444   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const vk::AccelerationStructureNV> accelerationStructures, vk::QueryType queryType, vk::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d ) const
63445   {
63446     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size() , reinterpret_cast<const VkAccelerationStructureNV*>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
63447   }
63448 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63449 
63450 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63451   template<typename Dispatch>
writeBufferMarkerAMD(vk::PipelineStageFlagBits pipelineStage,vk::Buffer dstBuffer,vk::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const63452   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( vk::PipelineStageFlagBits pipelineStage, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, uint32_t marker, Dispatch const &d) const
63453   {
63454     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
63455   }
63456 #else
63457   template<typename Dispatch>
writeBufferMarkerAMD(vk::PipelineStageFlagBits pipelineStage,vk::Buffer dstBuffer,vk::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const63458   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( vk::PipelineStageFlagBits pipelineStage, vk::Buffer dstBuffer, vk::DeviceSize dstOffset, uint32_t marker, Dispatch const &d ) const
63459   {
63460     d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
63461   }
63462 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63463 
63464 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63465   template<typename Dispatch>
writeTimestamp(vk::PipelineStageFlagBits pipelineStage,vk::QueryPool queryPool,uint32_t query,Dispatch const & d) const63466   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( vk::PipelineStageFlagBits pipelineStage, vk::QueryPool queryPool, uint32_t query, Dispatch const &d) const
63467   {
63468     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
63469   }
63470 #else
63471   template<typename Dispatch>
writeTimestamp(vk::PipelineStageFlagBits pipelineStage,vk::QueryPool queryPool,uint32_t query,Dispatch const & d) const63472   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( vk::PipelineStageFlagBits pipelineStage, vk::QueryPool queryPool, uint32_t query, Dispatch const &d ) const
63473   {
63474     d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
63475   }
63476 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63477 
63478 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63479   template<typename Dispatch>
end(Dispatch const & d) const63480   VULKAN_HPP_INLINE Result CommandBuffer::end(Dispatch const &d) const
63481   {
63482     return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
63483   }
63484 #else
63485   template<typename Dispatch>
end(Dispatch const & d) const63486   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::end(Dispatch const &d ) const
63487   {
63488     Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
63489     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::end" );
63490   }
63491 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63492 
63493 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63494   template<typename Dispatch>
reset(vk::CommandBufferResetFlags flags,Dispatch const & d) const63495   VULKAN_HPP_INLINE Result CommandBuffer::reset( vk::CommandBufferResetFlags flags, Dispatch const &d) const
63496   {
63497     return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
63498   }
63499 #else
63500   template<typename Dispatch>
reset(vk::CommandBufferResetFlags flags,Dispatch const & d) const63501   VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::reset( vk::CommandBufferResetFlags flags, Dispatch const &d ) const
63502   {
63503     Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
63504     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::reset" );
63505   }
63506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63507 
63508 #ifdef VK_USE_PLATFORM_WIN32_KHR
63509 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63510   template<typename Dispatch>
acquireFullScreenExclusiveModeEXT(vk::SwapchainKHR swapchain,Dispatch const & d) const63511   VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d) const
63512   {
63513     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
63514   }
63515 #else
63516   template<typename Dispatch>
acquireFullScreenExclusiveModeEXT(vk::SwapchainKHR swapchain,Dispatch const & d) const63517   VULKAN_HPP_INLINE ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d ) const
63518   {
63519     Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
63520     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireFullScreenExclusiveModeEXT" );
63521   }
63522 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63523 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
63524 
63525   template<typename Dispatch>
acquireNextImage2KHR(const vk::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const63526   VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const vk::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d) const
63527   {
63528     return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( pAcquireInfo ), pImageIndex ) );
63529   }
63530 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63531   template<typename Dispatch>
acquireNextImage2KHR(const AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const63532   VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d ) const
63533   {
63534     uint32_t imageIndex;
63535     Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( &acquireInfo ), &imageIndex ) );
63536     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
63537   }
63538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63539 
63540   template<typename Dispatch>
acquireNextImageKHR(vk::SwapchainKHR swapchain,uint64_t timeout,vk::Semaphore semaphore,vk::Fence fence,uint32_t * pImageIndex,Dispatch const & d) const63541   VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( vk::SwapchainKHR swapchain, uint64_t timeout, vk::Semaphore semaphore, vk::Fence fence, uint32_t* pImageIndex, Dispatch const &d) const
63542   {
63543     return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
63544   }
63545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63546   template<typename Dispatch>
acquireNextImageKHR(vk::SwapchainKHR swapchain,uint64_t timeout,vk::Semaphore semaphore,vk::Fence fence,Dispatch const & d) const63547   VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImageKHR( vk::SwapchainKHR swapchain, uint64_t timeout, vk::Semaphore semaphore, vk::Fence fence, Dispatch const &d ) const
63548   {
63549     uint32_t imageIndex;
63550     Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
63551     return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImageKHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
63552   }
63553 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63554 
63555   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const vk::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,vk::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const63556   VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const vk::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, vk::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d) const
63557   {
63558     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( pAcquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( pConfiguration ) ) );
63559   }
63560 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63561   template<typename Dispatch>
acquirePerformanceConfigurationINTEL(const PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const63562   VULKAN_HPP_INLINE ResultValueType<vk::PerformanceConfigurationINTEL>::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d ) const
63563   {
63564     vk::PerformanceConfigurationINTEL configuration;
63565     Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( &configuration ) ) );
63566     return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING"::Device::acquirePerformanceConfigurationINTEL" );
63567   }
63568 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63569 
63570   template<typename Dispatch>
allocateCommandBuffers(const vk::CommandBufferAllocateInfo * pAllocateInfo,vk::CommandBuffer * pCommandBuffers,Dispatch const & d) const63571   VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const vk::CommandBufferAllocateInfo* pAllocateInfo, vk::CommandBuffer* pCommandBuffers, Dispatch const &d) const
63572   {
63573     return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkCommandBuffer*>( pCommandBuffers ) ) );
63574   }
63575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63576   template<typename Allocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const63577   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
63578   {
63579     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount );
63580     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
63581     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
63582   }
63583   template<typename Allocator, typename Dispatch>
allocateCommandBuffers(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const63584   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
63585   {
63586     std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount, vectorAllocator );
63587     Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
63588     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
63589   }
63590 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63591   template<typename Allocator, typename Dispatch>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const63592   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
63593   {
63594     static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle<CommandBuffer, Dispatch> ), "CommandBuffer is greater than UniqueHandle<CommandBuffer, Dispatch>!" );
63595     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> commandBuffers;
63596     commandBuffers.reserve( allocateInfo.commandBufferCount );
63597     CommandBuffer* buffer = reinterpret_cast<CommandBuffer*>( reinterpret_cast<char*>( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle<CommandBuffer, Dispatch> ) - sizeof( CommandBuffer ) ) );
63598     Result result = static_cast<Result>(d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( buffer ) ) );
63599     if (result == vk::Result::eSuccess)
63600     {
63601       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
63602       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
63603       {
63604         commandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( buffer[i], deleter ) );
63605       }
63606     }
63607 
63608     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
63609   }
63610   template<typename Allocator, typename Dispatch>
allocateCommandBuffersUnique(const CommandBufferAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const63611   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
63612   {
63613     static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle<CommandBuffer, Dispatch> ), "CommandBuffer is greater than UniqueHandle<CommandBuffer, Dispatch>!" );
63614     std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> commandBuffers( vectorAllocator );
63615     commandBuffers.reserve( allocateInfo.commandBufferCount );
63616     CommandBuffer* buffer = reinterpret_cast<CommandBuffer*>( reinterpret_cast<char*>( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle<CommandBuffer, Dispatch> ) - sizeof( CommandBuffer ) ) );
63617     Result result = static_cast<Result>(d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( buffer ) ) );
63618     if (result == vk::Result::eSuccess)
63619     {
63620       PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
63621       for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
63622       {
63623         commandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( buffer[i], deleter ) );
63624       }
63625     }
63626 
63627     return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
63628   }
63629 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63630 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63631 
63632   template<typename Dispatch>
allocateDescriptorSets(const vk::DescriptorSetAllocateInfo * pAllocateInfo,vk::DescriptorSet * pDescriptorSets,Dispatch const & d) const63633   VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const vk::DescriptorSetAllocateInfo* pAllocateInfo, vk::DescriptorSet* pDescriptorSets, Dispatch const &d) const
63634   {
63635     return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkDescriptorSet*>( pDescriptorSets ) ) );
63636   }
63637 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63638   template<typename Allocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const63639   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
63640   {
63641     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount );
63642     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
63643     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
63644   }
63645   template<typename Allocator, typename Dispatch>
allocateDescriptorSets(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const63646   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
63647   {
63648     std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount, vectorAllocator );
63649     Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
63650     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
63651   }
63652 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63653   template<typename Allocator, typename Dispatch>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const63654   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
63655   {
63656     static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle<DescriptorSet, Dispatch> ), "DescriptorSet is greater than UniqueHandle<DescriptorSet, Dispatch>!" );
63657     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> descriptorSets;
63658     descriptorSets.reserve( allocateInfo.descriptorSetCount );
63659     DescriptorSet* buffer = reinterpret_cast<DescriptorSet*>( reinterpret_cast<char*>( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle<DescriptorSet, Dispatch> ) - sizeof( DescriptorSet ) ) );
63660     Result result = static_cast<Result>(d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( buffer ) ) );
63661     if (result == vk::Result::eSuccess)
63662     {
63663       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
63664       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
63665       {
63666         descriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( buffer[i], deleter ) );
63667       }
63668     }
63669 
63670     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
63671   }
63672   template<typename Allocator, typename Dispatch>
allocateDescriptorSetsUnique(const DescriptorSetAllocateInfo & allocateInfo,Allocator const & vectorAllocator,Dispatch const & d) const63673   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
63674   {
63675     static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle<DescriptorSet, Dispatch> ), "DescriptorSet is greater than UniqueHandle<DescriptorSet, Dispatch>!" );
63676     std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> descriptorSets( vectorAllocator );
63677     descriptorSets.reserve( allocateInfo.descriptorSetCount );
63678     DescriptorSet* buffer = reinterpret_cast<DescriptorSet*>( reinterpret_cast<char*>( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle<DescriptorSet, Dispatch> ) - sizeof( DescriptorSet ) ) );
63679     Result result = static_cast<Result>(d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( buffer ) ) );
63680     if (result == vk::Result::eSuccess)
63681     {
63682       PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
63683       for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
63684       {
63685         descriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( buffer[i], deleter ) );
63686       }
63687     }
63688 
63689     return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
63690   }
63691 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63692 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63693 
63694   template<typename Dispatch>
allocateMemory(const vk::MemoryAllocateInfo * pAllocateInfo,const vk::AllocationCallbacks * pAllocator,vk::DeviceMemory * pMemory,Dispatch const & d) const63695   VULKAN_HPP_INLINE Result Device::allocateMemory( const vk::MemoryAllocateInfo* pAllocateInfo, const vk::AllocationCallbacks* pAllocator, vk::DeviceMemory* pMemory, Dispatch const &d) const
63696   {
63697     return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeviceMemory*>( pMemory ) ) );
63698   }
63699 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63700   template<typename Dispatch>
allocateMemory(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63701   VULKAN_HPP_INLINE ResultValueType<vk::DeviceMemory>::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63702   {
63703     vk::DeviceMemory memory;
63704     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 ) ) );
63705     return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemory" );
63706   }
63707 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63708   template<typename Dispatch>
allocateMemoryUnique(const MemoryAllocateInfo & allocateInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63709   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63710   {
63711     vk::DeviceMemory memory;
63712     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 ) ) );
63713 
63714     ObjectFree<Device,Dispatch> deleter( *this, allocator, d );
63715     return createResultValue<DeviceMemory,Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter );
63716   }
63717 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63718 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63719 
63720   template<typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const vk::BindAccelerationStructureMemoryInfoNV * pBindInfos,Dispatch const & d) const63721   VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const vk::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d) const
63722   {
63723     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( pBindInfos ) ) );
63724   }
63725 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63726   template<typename Dispatch>
bindAccelerationStructureMemoryNV(ArrayProxy<const vk::BindAccelerationStructureMemoryInfoNV> bindInfos,Dispatch const & d) const63727   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const vk::BindAccelerationStructureMemoryInfoNV> bindInfos, Dispatch const &d ) const
63728   {
63729     Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size() , reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( bindInfos.data() ) ) );
63730     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryNV" );
63731   }
63732 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63733 
63734 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63735   template<typename Dispatch>
bindBufferMemory(vk::Buffer buffer,vk::DeviceMemory memory,vk::DeviceSize memoryOffset,Dispatch const & d) const63736   VULKAN_HPP_INLINE Result Device::bindBufferMemory( vk::Buffer buffer, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d) const
63737   {
63738     return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
63739   }
63740 #else
63741   template<typename Dispatch>
bindBufferMemory(vk::Buffer buffer,vk::DeviceMemory memory,vk::DeviceSize memoryOffset,Dispatch const & d) const63742   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory( vk::Buffer buffer, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d ) const
63743   {
63744     Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
63745     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory" );
63746   }
63747 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63748 
63749   template<typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const vk::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const63750   VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const vk::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const
63751   {
63752     return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
63753   }
63754 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63755   template<typename Dispatch>
bindBufferMemory2(ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos,Dispatch const & d) const63756   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory2( ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
63757   {
63758     Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
63759     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2" );
63760   }
63761 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63762 
63763   template<typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const vk::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const63764   VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const vk::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const
63765   {
63766     return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
63767   }
63768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63769   template<typename Dispatch>
bindBufferMemory2KHR(ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos,Dispatch const & d) const63770   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory2KHR( ArrayProxy<const vk::BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
63771   {
63772     Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
63773     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2KHR" );
63774   }
63775 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63776 
63777 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63778   template<typename Dispatch>
bindImageMemory(vk::Image image,vk::DeviceMemory memory,vk::DeviceSize memoryOffset,Dispatch const & d) const63779   VULKAN_HPP_INLINE Result Device::bindImageMemory( vk::Image image, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d) const
63780   {
63781     return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
63782   }
63783 #else
63784   template<typename Dispatch>
bindImageMemory(vk::Image image,vk::DeviceMemory memory,vk::DeviceSize memoryOffset,Dispatch const & d) const63785   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory( vk::Image image, vk::DeviceMemory memory, vk::DeviceSize memoryOffset, Dispatch const &d ) const
63786   {
63787     Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
63788     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory" );
63789   }
63790 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63791 
63792   template<typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const vk::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const63793   VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const vk::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const
63794   {
63795     return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
63796   }
63797 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63798   template<typename Dispatch>
bindImageMemory2(ArrayProxy<const vk::BindImageMemoryInfo> bindInfos,Dispatch const & d) const63799   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory2( ArrayProxy<const vk::BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
63800   {
63801     Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
63802     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2" );
63803   }
63804 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63805 
63806   template<typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const vk::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const63807   VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const vk::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const
63808   {
63809     return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
63810   }
63811 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63812   template<typename Dispatch>
bindImageMemory2KHR(ArrayProxy<const vk::BindImageMemoryInfo> bindInfos,Dispatch const & d) const63813   VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory2KHR( ArrayProxy<const vk::BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
63814   {
63815     Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
63816     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2KHR" );
63817   }
63818 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63819 
63820 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
63821   template<typename Dispatch>
compileDeferredNV(vk::Pipeline pipeline,uint32_t shader,Dispatch const & d) const63822   VULKAN_HPP_INLINE Result Device::compileDeferredNV( vk::Pipeline pipeline, uint32_t shader, Dispatch const &d) const
63823   {
63824     return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
63825   }
63826 #else
63827   template<typename Dispatch>
compileDeferredNV(vk::Pipeline pipeline,uint32_t shader,Dispatch const & d) const63828   VULKAN_HPP_INLINE ResultValueType<void>::type Device::compileDeferredNV( vk::Pipeline pipeline, uint32_t shader, Dispatch const &d ) const
63829   {
63830     Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
63831     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::compileDeferredNV" );
63832   }
63833 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63834 
63835   template<typename Dispatch>
createAccelerationStructureNV(const vk::AccelerationStructureCreateInfoNV * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const63836   VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const vk::AccelerationStructureCreateInfoNV* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::AccelerationStructureNV* pAccelerationStructure, Dispatch const &d) const
63837   {
63838     return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureNV*>( pAccelerationStructure ) ) );
63839   }
63840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63841   template<typename Dispatch>
createAccelerationStructureNV(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63842   VULKAN_HPP_INLINE ResultValueType<vk::AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63843   {
63844     vk::AccelerationStructureNV accelerationStructure;
63845     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 ) ) );
63846     return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNV" );
63847   }
63848 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63849   template<typename Dispatch>
createAccelerationStructureNVUnique(const AccelerationStructureCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63850   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63851   {
63852     vk::AccelerationStructureNV accelerationStructure;
63853     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 ) ) );
63854 
63855     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63856     return createResultValue<AccelerationStructureNV,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVUnique", deleter );
63857   }
63858 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63859 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63860 
63861   template<typename Dispatch>
createBuffer(const vk::BufferCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Buffer * pBuffer,Dispatch const & d) const63862   VULKAN_HPP_INLINE Result Device::createBuffer( const vk::BufferCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Buffer* pBuffer, Dispatch const &d) const
63863   {
63864     return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBuffer*>( pBuffer ) ) );
63865   }
63866 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63867   template<typename Dispatch>
createBuffer(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63868   VULKAN_HPP_INLINE ResultValueType<vk::Buffer>::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63869   {
63870     vk::Buffer buffer;
63871     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 ) ) );
63872     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBuffer" );
63873   }
63874 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63875   template<typename Dispatch>
createBufferUnique(const BufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63876   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63877   {
63878     vk::Buffer buffer;
63879     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 ) ) );
63880 
63881     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63882     return createResultValue<Buffer,Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter );
63883   }
63884 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63885 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63886 
63887   template<typename Dispatch>
createBufferView(const vk::BufferViewCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::BufferView * pView,Dispatch const & d) const63888   VULKAN_HPP_INLINE Result Device::createBufferView( const vk::BufferViewCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::BufferView* pView, Dispatch const &d) const
63889   {
63890     return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBufferView*>( pView ) ) );
63891   }
63892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63893   template<typename Dispatch>
createBufferView(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63894   VULKAN_HPP_INLINE ResultValueType<vk::BufferView>::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63895   {
63896     vk::BufferView view;
63897     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 ) ) );
63898     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferView" );
63899   }
63900 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63901   template<typename Dispatch>
createBufferViewUnique(const BufferViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63902   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63903   {
63904     vk::BufferView view;
63905     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 ) ) );
63906 
63907     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63908     return createResultValue<BufferView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter );
63909   }
63910 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63912 
63913   template<typename Dispatch>
createCommandPool(const vk::CommandPoolCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::CommandPool * pCommandPool,Dispatch const & d) const63914   VULKAN_HPP_INLINE Result Device::createCommandPool( const vk::CommandPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::CommandPool* pCommandPool, Dispatch const &d) const
63915   {
63916     return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkCommandPool*>( pCommandPool ) ) );
63917   }
63918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63919   template<typename Dispatch>
createCommandPool(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63920   VULKAN_HPP_INLINE ResultValueType<vk::CommandPool>::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63921   {
63922     vk::CommandPool commandPool;
63923     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 ) ) );
63924     return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPool" );
63925   }
63926 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63927   template<typename Dispatch>
createCommandPoolUnique(const CommandPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63928   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63929   {
63930     vk::CommandPool commandPool;
63931     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 ) ) );
63932 
63933     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63934     return createResultValue<CommandPool,Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter );
63935   }
63936 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
63937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
63938 
63939   template<typename Dispatch>
createComputePipelines(vk::PipelineCache pipelineCache,uint32_t createInfoCount,const vk::ComputePipelineCreateInfo * pCreateInfos,const vk::AllocationCallbacks * pAllocator,vk::Pipeline * pPipelines,Dispatch const & d) const63940   VULKAN_HPP_INLINE Result Device::createComputePipelines( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::ComputePipelineCreateInfo* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d) const
63941   {
63942     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 ) ) );
63943   }
63944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
63945   template<typename Allocator, typename Dispatch>
createComputePipelines(vk::PipelineCache pipelineCache,ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63946   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createComputePipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63947   {
63948     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
63949     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() ) ) );
63950     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" );
63951   }
63952   template<typename Allocator, typename Dispatch>
createComputePipelines(vk::PipelineCache pipelineCache,ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const63953   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createComputePipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
63954   {
63955     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
63956     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() ) ) );
63957     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" );
63958   }
63959   template<typename Dispatch>
createComputePipeline(vk::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63960   VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createComputePipeline( vk::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63961   {
63962     Pipeline pipeline;
63963     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 ) ) );
63964     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipeline" );
63965   }
63966 #ifndef VULKAN_HPP_NO_SMART_HANDLE
63967   template<typename Allocator, typename Dispatch>
createComputePipelinesUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const63968   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createComputePipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
63969   {
63970     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
63971     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
63972     pipelines.reserve( createInfos.size() );
63973     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
63974     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*>( buffer ) ) );
63975     if (result == vk::Result::eSuccess)
63976     {
63977       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63978       for ( size_t i=0 ; i<createInfos.size() ; i++ )
63979       {
63980         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
63981       }
63982     }
63983 
63984     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" );
63985   }
63986   template<typename Allocator, typename Dispatch>
createComputePipelinesUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const63987   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createComputePipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
63988   {
63989     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
63990     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
63991     pipelines.reserve( createInfos.size() );
63992     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
63993     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*>( buffer ) ) );
63994     if (result == vk::Result::eSuccess)
63995     {
63996       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
63997       for ( size_t i=0 ; i<createInfos.size() ; i++ )
63998       {
63999         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
64000       }
64001     }
64002 
64003     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" );
64004   }
64005   template<typename Dispatch>
createComputePipelineUnique(vk::PipelineCache pipelineCache,const ComputePipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64006   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createComputePipelineUnique( vk::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64007   {
64008     Pipeline pipeline;
64009     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 ) ) );
64010 
64011     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64012     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", deleter );
64013   }
64014 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64016 
64017   template<typename Dispatch>
createDescriptorPool(const vk::DescriptorPoolCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DescriptorPool * pDescriptorPool,Dispatch const & d) const64018   VULKAN_HPP_INLINE Result Device::createDescriptorPool( const vk::DescriptorPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorPool* pDescriptorPool, Dispatch const &d) const
64019   {
64020     return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorPool*>( pDescriptorPool ) ) );
64021   }
64022 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64023   template<typename Dispatch>
createDescriptorPool(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64024   VULKAN_HPP_INLINE ResultValueType<vk::DescriptorPool>::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64025   {
64026     vk::DescriptorPool descriptorPool;
64027     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 ) ) );
64028     return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPool" );
64029   }
64030 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64031   template<typename Dispatch>
createDescriptorPoolUnique(const DescriptorPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64032   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64033   {
64034     vk::DescriptorPool descriptorPool;
64035     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 ) ) );
64036 
64037     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64038     return createResultValue<DescriptorPool,Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter );
64039   }
64040 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64041 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64042 
64043   template<typename Dispatch>
createDescriptorSetLayout(const vk::DescriptorSetLayoutCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DescriptorSetLayout * pSetLayout,Dispatch const & d) const64044   VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorSetLayout* pSetLayout, Dispatch const &d) const
64045   {
64046     return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorSetLayout*>( pSetLayout ) ) );
64047   }
64048 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64049   template<typename Dispatch>
createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64050   VULKAN_HPP_INLINE ResultValueType<vk::DescriptorSetLayout>::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64051   {
64052     vk::DescriptorSetLayout setLayout;
64053     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 ) ) );
64054     return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayout" );
64055   }
64056 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64057   template<typename Dispatch>
createDescriptorSetLayoutUnique(const DescriptorSetLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64058   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64059   {
64060     vk::DescriptorSetLayout setLayout;
64061     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 ) ) );
64062 
64063     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64064     return createResultValue<DescriptorSetLayout,Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter );
64065   }
64066 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64067 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64068 
64069   template<typename Dispatch>
createDescriptorUpdateTemplate(const vk::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const64070   VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const vk::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const
64071   {
64072     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
64073   }
64074 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64075   template<typename Dispatch>
createDescriptorUpdateTemplate(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64076   VULKAN_HPP_INLINE ResultValueType<vk::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64077   {
64078     vk::DescriptorUpdateTemplate descriptorUpdateTemplate;
64079     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 ) ) );
64080     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplate" );
64081   }
64082 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64083   template<typename Dispatch>
createDescriptorUpdateTemplateUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64084   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64085   {
64086     vk::DescriptorUpdateTemplate descriptorUpdateTemplate;
64087     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 ) ) );
64088 
64089     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64090     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter );
64091   }
64092 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64093 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64094 
64095   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const vk::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const64096   VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const vk::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const
64097   {
64098     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
64099   }
64100 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64101   template<typename Dispatch>
createDescriptorUpdateTemplateKHR(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64102   VULKAN_HPP_INLINE ResultValueType<vk::DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64103   {
64104     vk::DescriptorUpdateTemplate descriptorUpdateTemplate;
64105     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 ) ) );
64106     return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHR" );
64107   }
64108 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64109   template<typename Dispatch>
createDescriptorUpdateTemplateKHRUnique(const DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64110   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64111   {
64112     vk::DescriptorUpdateTemplate descriptorUpdateTemplate;
64113     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 ) ) );
64114 
64115     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64116     return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
64117   }
64118 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64120 
64121   template<typename Dispatch>
createEvent(const vk::EventCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Event * pEvent,Dispatch const & d) const64122   VULKAN_HPP_INLINE Result Device::createEvent( const vk::EventCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Event* pEvent, Dispatch const &d) const
64123   {
64124     return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkEvent*>( pEvent ) ) );
64125   }
64126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64127   template<typename Dispatch>
createEvent(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64128   VULKAN_HPP_INLINE ResultValueType<vk::Event>::type Device::createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64129   {
64130     vk::Event event;
64131     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 ) ) );
64132     return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEvent" );
64133   }
64134 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64135   template<typename Dispatch>
createEventUnique(const EventCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64136   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Event,Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64137   {
64138     vk::Event event;
64139     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 ) ) );
64140 
64141     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64142     return createResultValue<Event,Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter );
64143   }
64144 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64145 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64146 
64147   template<typename Dispatch>
createFence(const vk::FenceCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Fence * pFence,Dispatch const & d) const64148   VULKAN_HPP_INLINE Result Device::createFence( const vk::FenceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d) const
64149   {
64150     return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
64151   }
64152 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64153   template<typename Dispatch>
createFence(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64154   VULKAN_HPP_INLINE ResultValueType<vk::Fence>::type Device::createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64155   {
64156     vk::Fence fence;
64157     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 ) ) );
64158     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFence" );
64159   }
64160 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64161   template<typename Dispatch>
createFenceUnique(const FenceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64162   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64163   {
64164     vk::Fence fence;
64165     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 ) ) );
64166 
64167     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64168     return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter );
64169   }
64170 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64171 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64172 
64173   template<typename Dispatch>
createFramebuffer(const vk::FramebufferCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Framebuffer * pFramebuffer,Dispatch const & d) const64174   VULKAN_HPP_INLINE Result Device::createFramebuffer( const vk::FramebufferCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Framebuffer* pFramebuffer, Dispatch const &d) const
64175   {
64176     return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFramebuffer*>( pFramebuffer ) ) );
64177   }
64178 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64179   template<typename Dispatch>
createFramebuffer(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64180   VULKAN_HPP_INLINE ResultValueType<vk::Framebuffer>::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64181   {
64182     vk::Framebuffer framebuffer;
64183     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 ) ) );
64184     return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebuffer" );
64185   }
64186 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64187   template<typename Dispatch>
createFramebufferUnique(const FramebufferCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64188   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64189   {
64190     vk::Framebuffer framebuffer;
64191     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 ) ) );
64192 
64193     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64194     return createResultValue<Framebuffer,Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter );
64195   }
64196 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64197 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64198 
64199   template<typename Dispatch>
createGraphicsPipelines(vk::PipelineCache pipelineCache,uint32_t createInfoCount,const vk::GraphicsPipelineCreateInfo * pCreateInfos,const vk::AllocationCallbacks * pAllocator,vk::Pipeline * pPipelines,Dispatch const & d) const64200   VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::GraphicsPipelineCreateInfo* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d) const
64201   {
64202     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 ) ) );
64203   }
64204 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64205   template<typename Allocator, typename Dispatch>
createGraphicsPipelines(vk::PipelineCache pipelineCache,ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64206   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createGraphicsPipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64207   {
64208     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
64209     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() ) ) );
64210     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" );
64211   }
64212   template<typename Allocator, typename Dispatch>
createGraphicsPipelines(vk::PipelineCache pipelineCache,ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64213   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createGraphicsPipelines( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64214   {
64215     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
64216     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() ) ) );
64217     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" );
64218   }
64219   template<typename Dispatch>
createGraphicsPipeline(vk::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64220   VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createGraphicsPipeline( vk::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64221   {
64222     Pipeline pipeline;
64223     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 ) ) );
64224     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipeline" );
64225   }
64226 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64227   template<typename Allocator, typename Dispatch>
createGraphicsPipelinesUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64228   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createGraphicsPipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64229   {
64230     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
64231     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
64232     pipelines.reserve( createInfos.size() );
64233     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
64234     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*>( buffer ) ) );
64235     if (result == vk::Result::eSuccess)
64236     {
64237       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64238       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64239       {
64240         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
64241       }
64242     }
64243 
64244     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" );
64245   }
64246   template<typename Allocator, typename Dispatch>
createGraphicsPipelinesUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64247   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createGraphicsPipelinesUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64248   {
64249     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
64250     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
64251     pipelines.reserve( createInfos.size() );
64252     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
64253     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*>( buffer ) ) );
64254     if (result == vk::Result::eSuccess)
64255     {
64256       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64257       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64258       {
64259         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
64260       }
64261     }
64262 
64263     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" );
64264   }
64265   template<typename Dispatch>
createGraphicsPipelineUnique(vk::PipelineCache pipelineCache,const GraphicsPipelineCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64266   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createGraphicsPipelineUnique( vk::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64267   {
64268     Pipeline pipeline;
64269     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 ) ) );
64270 
64271     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64272     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", deleter );
64273   }
64274 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64275 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64276 
64277   template<typename Dispatch>
createImage(const vk::ImageCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Image * pImage,Dispatch const & d) const64278   VULKAN_HPP_INLINE Result Device::createImage( const vk::ImageCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Image* pImage, Dispatch const &d) const
64279   {
64280     return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImage*>( pImage ) ) );
64281   }
64282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64283   template<typename Dispatch>
createImage(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64284   VULKAN_HPP_INLINE ResultValueType<vk::Image>::type Device::createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64285   {
64286     vk::Image image;
64287     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 ) ) );
64288     return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImage" );
64289   }
64290 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64291   template<typename Dispatch>
createImageUnique(const ImageCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64292   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Image,Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64293   {
64294     vk::Image image;
64295     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 ) ) );
64296 
64297     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64298     return createResultValue<Image,Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter );
64299   }
64300 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64301 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64302 
64303   template<typename Dispatch>
createImageView(const vk::ImageViewCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::ImageView * pView,Dispatch const & d) const64304   VULKAN_HPP_INLINE Result Device::createImageView( const vk::ImageViewCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ImageView* pView, Dispatch const &d) const
64305   {
64306     return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImageView*>( pView ) ) );
64307   }
64308 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64309   template<typename Dispatch>
createImageView(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64310   VULKAN_HPP_INLINE ResultValueType<vk::ImageView>::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64311   {
64312     vk::ImageView view;
64313     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 ) ) );
64314     return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageView" );
64315   }
64316 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64317   template<typename Dispatch>
createImageViewUnique(const ImageViewCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64318   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64319   {
64320     vk::ImageView view;
64321     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 ) ) );
64322 
64323     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64324     return createResultValue<ImageView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter );
64325   }
64326 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64327 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64328 
64329   template<typename Dispatch>
createIndirectCommandsLayoutNVX(const vk::IndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::IndirectCommandsLayoutNVX * pIndirectCommandsLayout,Dispatch const & d) const64330   VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNVX( const vk::IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d) const
64331   {
64332     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( pIndirectCommandsLayout ) ) );
64333   }
64334 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64335   template<typename Dispatch>
createIndirectCommandsLayoutNVX(const IndirectCommandsLayoutCreateInfoNVX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64336   VULKAN_HPP_INLINE ResultValueType<vk::IndirectCommandsLayoutNVX>::type Device::createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64337   {
64338     vk::IndirectCommandsLayoutNVX indirectCommandsLayout;
64339     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( &indirectCommandsLayout ) ) );
64340     return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVX" );
64341   }
64342 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64343   template<typename Dispatch>
createIndirectCommandsLayoutNVXUnique(const IndirectCommandsLayoutCreateInfoNVX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64344   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type Device::createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64345   {
64346     vk::IndirectCommandsLayoutNVX indirectCommandsLayout;
64347     Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( &indirectCommandsLayout ) ) );
64348 
64349     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64350     return createResultValue<IndirectCommandsLayoutNVX,Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVXUnique", deleter );
64351   }
64352 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64353 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64354 
64355   template<typename Dispatch>
createObjectTableNVX(const vk::ObjectTableCreateInfoNVX * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::ObjectTableNVX * pObjectTable,Dispatch const & d) const64356   VULKAN_HPP_INLINE Result Device::createObjectTableNVX( const vk::ObjectTableCreateInfoNVX* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ObjectTableNVX* pObjectTable, Dispatch const &d) const
64357   {
64358     return static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkObjectTableNVX*>( pObjectTable ) ) );
64359   }
64360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64361   template<typename Dispatch>
createObjectTableNVX(const ObjectTableCreateInfoNVX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64362   VULKAN_HPP_INLINE ResultValueType<vk::ObjectTableNVX>::type Device::createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64363   {
64364     vk::ObjectTableNVX objectTable;
64365     Result result = static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkObjectTableNVX*>( &objectTable ) ) );
64366     return createResultValue( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVX" );
64367   }
64368 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64369   template<typename Dispatch>
createObjectTableNVXUnique(const ObjectTableCreateInfoNVX & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64370   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type Device::createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64371   {
64372     vk::ObjectTableNVX objectTable;
64373     Result result = static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkObjectTableNVX*>( &objectTable ) ) );
64374 
64375     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64376     return createResultValue<ObjectTableNVX,Dispatch>( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVXUnique", deleter );
64377   }
64378 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64379 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64380 
64381   template<typename Dispatch>
createPipelineCache(const vk::PipelineCacheCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::PipelineCache * pPipelineCache,Dispatch const & d) const64382   VULKAN_HPP_INLINE Result Device::createPipelineCache( const vk::PipelineCacheCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::PipelineCache* pPipelineCache, Dispatch const &d) const
64383   {
64384     return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineCache*>( pPipelineCache ) ) );
64385   }
64386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64387   template<typename Dispatch>
createPipelineCache(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64388   VULKAN_HPP_INLINE ResultValueType<vk::PipelineCache>::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64389   {
64390     vk::PipelineCache pipelineCache;
64391     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 ) ) );
64392     return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCache" );
64393   }
64394 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64395   template<typename Dispatch>
createPipelineCacheUnique(const PipelineCacheCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64396   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64397   {
64398     vk::PipelineCache pipelineCache;
64399     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 ) ) );
64400 
64401     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64402     return createResultValue<PipelineCache,Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter );
64403   }
64404 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64405 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64406 
64407   template<typename Dispatch>
createPipelineLayout(const vk::PipelineLayoutCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::PipelineLayout * pPipelineLayout,Dispatch const & d) const64408   VULKAN_HPP_INLINE Result Device::createPipelineLayout( const vk::PipelineLayoutCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::PipelineLayout* pPipelineLayout, Dispatch const &d) const
64409   {
64410     return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineLayout*>( pPipelineLayout ) ) );
64411   }
64412 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64413   template<typename Dispatch>
createPipelineLayout(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64414   VULKAN_HPP_INLINE ResultValueType<vk::PipelineLayout>::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64415   {
64416     vk::PipelineLayout pipelineLayout;
64417     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 ) ) );
64418     return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayout" );
64419   }
64420 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64421   template<typename Dispatch>
createPipelineLayoutUnique(const PipelineLayoutCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64422   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64423   {
64424     vk::PipelineLayout pipelineLayout;
64425     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 ) ) );
64426 
64427     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64428     return createResultValue<PipelineLayout,Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter );
64429   }
64430 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64431 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64432 
64433   template<typename Dispatch>
createQueryPool(const vk::QueryPoolCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::QueryPool * pQueryPool,Dispatch const & d) const64434   VULKAN_HPP_INLINE Result Device::createQueryPool( const vk::QueryPoolCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::QueryPool* pQueryPool, Dispatch const &d) const
64435   {
64436     return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkQueryPool*>( pQueryPool ) ) );
64437   }
64438 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64439   template<typename Dispatch>
createQueryPool(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64440   VULKAN_HPP_INLINE ResultValueType<vk::QueryPool>::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64441   {
64442     vk::QueryPool queryPool;
64443     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 ) ) );
64444     return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPool" );
64445   }
64446 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64447   template<typename Dispatch>
createQueryPoolUnique(const QueryPoolCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64448   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64449   {
64450     vk::QueryPool queryPool;
64451     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 ) ) );
64452 
64453     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64454     return createResultValue<QueryPool,Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter );
64455   }
64456 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64458 
64459   template<typename Dispatch>
createRayTracingPipelinesNV(vk::PipelineCache pipelineCache,uint32_t createInfoCount,const vk::RayTracingPipelineCreateInfoNV * pCreateInfos,const vk::AllocationCallbacks * pAllocator,vk::Pipeline * pPipelines,Dispatch const & d) const64460   VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, uint32_t createInfoCount, const vk::RayTracingPipelineCreateInfoNV* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::Pipeline* pPipelines, Dispatch const &d) const
64461   {
64462     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 ) ) );
64463   }
64464 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64465   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNV(vk::PipelineCache pipelineCache,ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64466   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64467   {
64468     std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
64469     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() ) ) );
64470     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" );
64471   }
64472   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNV(vk::PipelineCache pipelineCache,ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64473   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createRayTracingPipelinesNV( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64474   {
64475     std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
64476     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() ) ) );
64477     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" );
64478   }
64479   template<typename Dispatch>
createRayTracingPipelineNV(vk::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64480   VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createRayTracingPipelineNV( vk::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64481   {
64482     Pipeline pipeline;
64483     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 ) ) );
64484     return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNV" );
64485   }
64486 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64487   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNVUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64488   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createRayTracingPipelinesNVUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64489   {
64490     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
64491     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
64492     pipelines.reserve( createInfos.size() );
64493     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
64494     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*>( buffer ) ) );
64495     if (result == vk::Result::eSuccess)
64496     {
64497       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64498       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64499       {
64500         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
64501       }
64502     }
64503 
64504     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" );
64505   }
64506   template<typename Allocator, typename Dispatch>
createRayTracingPipelinesNVUnique(vk::PipelineCache pipelineCache,ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64507   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createRayTracingPipelinesNVUnique( vk::PipelineCache pipelineCache, ArrayProxy<const vk::RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64508   {
64509     static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
64510     std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
64511     pipelines.reserve( createInfos.size() );
64512     Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
64513     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*>( buffer ) ) );
64514     if (result == vk::Result::eSuccess)
64515     {
64516       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64517       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64518       {
64519         pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
64520       }
64521     }
64522 
64523     return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" );
64524   }
64525   template<typename Dispatch>
createRayTracingPipelineNVUnique(vk::PipelineCache pipelineCache,const RayTracingPipelineCreateInfoNV & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64526   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createRayTracingPipelineNVUnique( vk::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64527   {
64528     Pipeline pipeline;
64529     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 ) ) );
64530 
64531     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64532     return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNVUnique", deleter );
64533   }
64534 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64535 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64536 
64537   template<typename Dispatch>
createRenderPass(const vk::RenderPassCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::RenderPass * pRenderPass,Dispatch const & d) const64538   VULKAN_HPP_INLINE Result Device::createRenderPass( const vk::RenderPassCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::RenderPass* pRenderPass, Dispatch const &d) const
64539   {
64540     return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
64541   }
64542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64543   template<typename Dispatch>
createRenderPass(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64544   VULKAN_HPP_INLINE ResultValueType<vk::RenderPass>::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64545   {
64546     vk::RenderPass renderPass;
64547     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 ) ) );
64548     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass" );
64549   }
64550 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64551   template<typename Dispatch>
createRenderPassUnique(const RenderPassCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64552   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64553   {
64554     vk::RenderPass renderPass;
64555     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 ) ) );
64556 
64557     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64558     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter );
64559   }
64560 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64561 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64562 
64563   template<typename Dispatch>
createRenderPass2KHR(const vk::RenderPassCreateInfo2KHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::RenderPass * pRenderPass,Dispatch const & d) const64564   VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const vk::RenderPassCreateInfo2KHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::RenderPass* pRenderPass, Dispatch const &d) const
64565   {
64566     return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
64567   }
64568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64569   template<typename Dispatch>
createRenderPass2KHR(const RenderPassCreateInfo2KHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64570   VULKAN_HPP_INLINE ResultValueType<vk::RenderPass>::type Device::createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64571   {
64572     vk::RenderPass renderPass;
64573     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
64574     return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" );
64575   }
64576 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64577   template<typename Dispatch>
createRenderPass2KHRUnique(const RenderPassCreateInfo2KHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64578   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64579   {
64580     vk::RenderPass renderPass;
64581     Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
64582 
64583     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64584     return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter );
64585   }
64586 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64587 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64588 
64589   template<typename Dispatch>
createSampler(const vk::SamplerCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Sampler * pSampler,Dispatch const & d) const64590   VULKAN_HPP_INLINE Result Device::createSampler( const vk::SamplerCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Sampler* pSampler, Dispatch const &d) const
64591   {
64592     return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSampler*>( pSampler ) ) );
64593   }
64594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64595   template<typename Dispatch>
createSampler(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64596   VULKAN_HPP_INLINE ResultValueType<vk::Sampler>::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64597   {
64598     vk::Sampler sampler;
64599     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 ) ) );
64600     return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSampler" );
64601   }
64602 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64603   template<typename Dispatch>
createSamplerUnique(const SamplerCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64604   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64605   {
64606     vk::Sampler sampler;
64607     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 ) ) );
64608 
64609     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64610     return createResultValue<Sampler,Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter );
64611   }
64612 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64613 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64614 
64615   template<typename Dispatch>
createSamplerYcbcrConversion(const vk::SamplerYcbcrConversionCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const64616   VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const vk::SamplerYcbcrConversionCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const
64617   {
64618     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
64619   }
64620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64621   template<typename Dispatch>
createSamplerYcbcrConversion(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64622   VULKAN_HPP_INLINE ResultValueType<vk::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64623   {
64624     vk::SamplerYcbcrConversion ycbcrConversion;
64625     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 ) ) );
64626     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversion" );
64627   }
64628 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64629   template<typename Dispatch>
createSamplerYcbcrConversionUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64630   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64631   {
64632     vk::SamplerYcbcrConversion ycbcrConversion;
64633     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 ) ) );
64634 
64635     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64636     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter );
64637   }
64638 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64639 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64640 
64641   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const vk::SamplerYcbcrConversionCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const64642   VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const vk::SamplerYcbcrConversionCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const
64643   {
64644     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
64645   }
64646 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64647   template<typename Dispatch>
createSamplerYcbcrConversionKHR(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64648   VULKAN_HPP_INLINE ResultValueType<vk::SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64649   {
64650     vk::SamplerYcbcrConversion ycbcrConversion;
64651     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 ) ) );
64652     return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHR" );
64653   }
64654 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64655   template<typename Dispatch>
createSamplerYcbcrConversionKHRUnique(const SamplerYcbcrConversionCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64656   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64657   {
64658     vk::SamplerYcbcrConversion ycbcrConversion;
64659     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 ) ) );
64660 
64661     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64662     return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter );
64663   }
64664 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64666 
64667   template<typename Dispatch>
createSemaphore(const vk::SemaphoreCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Semaphore * pSemaphore,Dispatch const & d) const64668   VULKAN_HPP_INLINE Result Device::createSemaphore( const vk::SemaphoreCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Semaphore* pSemaphore, Dispatch const &d) const
64669   {
64670     return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSemaphore*>( pSemaphore ) ) );
64671   }
64672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64673   template<typename Dispatch>
createSemaphore(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64674   VULKAN_HPP_INLINE ResultValueType<vk::Semaphore>::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64675   {
64676     vk::Semaphore semaphore;
64677     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 ) ) );
64678     return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphore" );
64679   }
64680 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64681   template<typename Dispatch>
createSemaphoreUnique(const SemaphoreCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64682   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64683   {
64684     vk::Semaphore semaphore;
64685     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 ) ) );
64686 
64687     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64688     return createResultValue<Semaphore,Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter );
64689   }
64690 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64691 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64692 
64693   template<typename Dispatch>
createShaderModule(const vk::ShaderModuleCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::ShaderModule * pShaderModule,Dispatch const & d) const64694   VULKAN_HPP_INLINE Result Device::createShaderModule( const vk::ShaderModuleCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ShaderModule* pShaderModule, Dispatch const &d) const
64695   {
64696     return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkShaderModule*>( pShaderModule ) ) );
64697   }
64698 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64699   template<typename Dispatch>
createShaderModule(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64700   VULKAN_HPP_INLINE ResultValueType<vk::ShaderModule>::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64701   {
64702     vk::ShaderModule shaderModule;
64703     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 ) ) );
64704     return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModule" );
64705   }
64706 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64707   template<typename Dispatch>
createShaderModuleUnique(const ShaderModuleCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64708   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64709   {
64710     vk::ShaderModule shaderModule;
64711     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 ) ) );
64712 
64713     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64714     return createResultValue<ShaderModule,Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter );
64715   }
64716 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64717 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64718 
64719   template<typename Dispatch>
createSharedSwapchainsKHR(uint32_t swapchainCount,const vk::SwapchainCreateInfoKHR * pCreateInfos,const vk::AllocationCallbacks * pAllocator,vk::SwapchainKHR * pSwapchains,Dispatch const & d) const64720   VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const vk::SwapchainCreateInfoKHR* pCreateInfos, const vk::AllocationCallbacks* pAllocator, vk::SwapchainKHR* pSwapchains, Dispatch const &d) const
64721   {
64722     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchains ) ) );
64723   }
64724 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64725   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64726   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64727   {
64728     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size() );
64729     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() ) ) );
64730     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
64731   }
64732   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHR(ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64733   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64734   {
64735     std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size(), vectorAllocator );
64736     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() ) ) );
64737     return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
64738   }
64739   template<typename Dispatch>
createSharedSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64740   VULKAN_HPP_INLINE ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64741   {
64742     SwapchainKHR swapchain;
64743     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 ) ) );
64744     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHR" );
64745   }
64746 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64747   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHRUnique(ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64748   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64749   {
64750     static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle<SwapchainKHR, Dispatch> ), "SwapchainKHR is greater than UniqueHandle<SwapchainKHR, Dispatch>!" );
64751     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> swapchainKHRs;
64752     swapchainKHRs.reserve( createInfos.size() );
64753     SwapchainKHR* buffer = reinterpret_cast<SwapchainKHR*>( reinterpret_cast<char*>( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle<SwapchainKHR, Dispatch> ) - sizeof( SwapchainKHR ) ) );
64754     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*>( buffer ) ) );
64755     if (result == vk::Result::eSuccess)
64756     {
64757       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64758       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64759       {
64760         swapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( buffer[i], deleter ) );
64761       }
64762     }
64763 
64764     return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
64765   }
64766   template<typename Allocator, typename Dispatch>
createSharedSwapchainsKHRUnique(ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos,Optional<const AllocationCallbacks> allocator,Allocator const & vectorAllocator,Dispatch const & d) const64767   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const vk::SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
64768   {
64769     static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle<SwapchainKHR, Dispatch> ), "SwapchainKHR is greater than UniqueHandle<SwapchainKHR, Dispatch>!" );
64770     std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> swapchainKHRs( vectorAllocator );
64771     swapchainKHRs.reserve( createInfos.size() );
64772     SwapchainKHR* buffer = reinterpret_cast<SwapchainKHR*>( reinterpret_cast<char*>( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle<SwapchainKHR, Dispatch> ) - sizeof( SwapchainKHR ) ) );
64773     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*>( buffer ) ) );
64774     if (result == vk::Result::eSuccess)
64775     {
64776       ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64777       for ( size_t i=0 ; i<createInfos.size() ; i++ )
64778       {
64779         swapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( buffer[i], deleter ) );
64780       }
64781     }
64782 
64783     return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
64784   }
64785   template<typename Dispatch>
createSharedSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64786   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64787   {
64788     SwapchainKHR swapchain;
64789     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 ) ) );
64790 
64791     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64792     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter );
64793   }
64794 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64796 
64797   template<typename Dispatch>
createSwapchainKHR(const vk::SwapchainCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SwapchainKHR * pSwapchain,Dispatch const & d) const64798   VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const vk::SwapchainCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SwapchainKHR* pSwapchain, Dispatch const &d) const
64799   {
64800     return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchain ) ) );
64801   }
64802 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64803   template<typename Dispatch>
createSwapchainKHR(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64804   VULKAN_HPP_INLINE ResultValueType<vk::SwapchainKHR>::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64805   {
64806     vk::SwapchainKHR swapchain;
64807     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 ) ) );
64808     return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHR" );
64809   }
64810 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64811   template<typename Dispatch>
createSwapchainKHRUnique(const SwapchainCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64812   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64813   {
64814     vk::SwapchainKHR swapchain;
64815     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 ) ) );
64816 
64817     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64818     return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter );
64819   }
64820 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64822 
64823   template<typename Dispatch>
createValidationCacheEXT(const vk::ValidationCacheCreateInfoEXT * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::ValidationCacheEXT * pValidationCache,Dispatch const & d) const64824   VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const vk::ValidationCacheCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::ValidationCacheEXT* pValidationCache, Dispatch const &d) const
64825   {
64826     return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkValidationCacheEXT*>( pValidationCache ) ) );
64827   }
64828 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64829   template<typename Dispatch>
createValidationCacheEXT(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64830   VULKAN_HPP_INLINE ResultValueType<vk::ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64831   {
64832     vk::ValidationCacheEXT validationCache;
64833     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 ) ) );
64834     return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXT" );
64835   }
64836 #ifndef VULKAN_HPP_NO_SMART_HANDLE
64837   template<typename Dispatch>
createValidationCacheEXTUnique(const ValidationCacheCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64838   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64839   {
64840     vk::ValidationCacheEXT validationCache;
64841     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 ) ) );
64842 
64843     ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
64844     return createResultValue<ValidationCacheEXT,Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter );
64845   }
64846 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
64847 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64848 
64849   template<typename Dispatch>
debugMarkerSetObjectNameEXT(const vk::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const64850   VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const vk::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d) const
64851   {
64852     return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( pNameInfo ) ) );
64853   }
64854 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64855   template<typename Dispatch>
debugMarkerSetObjectNameEXT(const DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const64856   VULKAN_HPP_INLINE ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
64857   {
64858     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( &nameInfo ) ) );
64859     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectNameEXT" );
64860   }
64861 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64862 
64863   template<typename Dispatch>
debugMarkerSetObjectTagEXT(const vk::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const64864   VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const vk::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d) const
64865   {
64866     return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( pTagInfo ) ) );
64867   }
64868 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64869   template<typename Dispatch>
debugMarkerSetObjectTagEXT(const DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const64870   VULKAN_HPP_INLINE ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
64871   {
64872     Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( &tagInfo ) ) );
64873     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectTagEXT" );
64874   }
64875 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64876 
64877   template<typename Dispatch>
destroyAccelerationStructureNV(vk::AccelerationStructureNV accelerationStructure,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64878   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( vk::AccelerationStructureNV accelerationStructure, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64879   {
64880     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64881   }
64882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64883   template<typename Dispatch>
destroyAccelerationStructureNV(vk::AccelerationStructureNV accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64884   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( vk::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64885   {
64886     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64887   }
64888 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64889 
64890   template<typename Dispatch>
destroy(vk::AccelerationStructureNV accelerationStructure,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64891   VULKAN_HPP_INLINE void Device::destroy( vk::AccelerationStructureNV accelerationStructure, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64892   {
64893     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64894   }
64895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64896   template<typename Dispatch>
destroy(vk::AccelerationStructureNV accelerationStructure,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64897   VULKAN_HPP_INLINE void Device::destroy( vk::AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64898   {
64899     d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64900   }
64901 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64902 
64903   template<typename Dispatch>
destroyBuffer(vk::Buffer buffer,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64904   VULKAN_HPP_INLINE void Device::destroyBuffer( vk::Buffer buffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64905   {
64906     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64907   }
64908 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64909   template<typename Dispatch>
destroyBuffer(vk::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64910   VULKAN_HPP_INLINE void Device::destroyBuffer( vk::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64911   {
64912     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64913   }
64914 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64915 
64916   template<typename Dispatch>
destroy(vk::Buffer buffer,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64917   VULKAN_HPP_INLINE void Device::destroy( vk::Buffer buffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64918   {
64919     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64920   }
64921 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64922   template<typename Dispatch>
destroy(vk::Buffer buffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64923   VULKAN_HPP_INLINE void Device::destroy( vk::Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64924   {
64925     d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64926   }
64927 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64928 
64929   template<typename Dispatch>
destroyBufferView(vk::BufferView bufferView,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64930   VULKAN_HPP_INLINE void Device::destroyBufferView( vk::BufferView bufferView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64931   {
64932     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64933   }
64934 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64935   template<typename Dispatch>
destroyBufferView(vk::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64936   VULKAN_HPP_INLINE void Device::destroyBufferView( vk::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64937   {
64938     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64939   }
64940 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64941 
64942   template<typename Dispatch>
destroy(vk::BufferView bufferView,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64943   VULKAN_HPP_INLINE void Device::destroy( vk::BufferView bufferView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64944   {
64945     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64946   }
64947 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64948   template<typename Dispatch>
destroy(vk::BufferView bufferView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64949   VULKAN_HPP_INLINE void Device::destroy( vk::BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64950   {
64951     d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64952   }
64953 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64954 
64955   template<typename Dispatch>
destroyCommandPool(vk::CommandPool commandPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64956   VULKAN_HPP_INLINE void Device::destroyCommandPool( vk::CommandPool commandPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64957   {
64958     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64959   }
64960 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64961   template<typename Dispatch>
destroyCommandPool(vk::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64962   VULKAN_HPP_INLINE void Device::destroyCommandPool( vk::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64963   {
64964     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64965   }
64966 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64967 
64968   template<typename Dispatch>
destroy(vk::CommandPool commandPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64969   VULKAN_HPP_INLINE void Device::destroy( vk::CommandPool commandPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64970   {
64971     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64972   }
64973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64974   template<typename Dispatch>
destroy(vk::CommandPool commandPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64975   VULKAN_HPP_INLINE void Device::destroy( vk::CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64976   {
64977     d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64978   }
64979 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64980 
64981   template<typename Dispatch>
destroyDescriptorPool(vk::DescriptorPool descriptorPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64982   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( vk::DescriptorPool descriptorPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64983   {
64984     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64985   }
64986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
64987   template<typename Dispatch>
destroyDescriptorPool(vk::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const64988   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( vk::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
64989   {
64990     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
64991   }
64992 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
64993 
64994   template<typename Dispatch>
destroy(vk::DescriptorPool descriptorPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const64995   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorPool descriptorPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
64996   {
64997     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
64998   }
64999 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65000   template<typename Dispatch>
destroy(vk::DescriptorPool descriptorPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65001   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65002   {
65003     d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65004   }
65005 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65006 
65007   template<typename Dispatch>
destroyDescriptorSetLayout(vk::DescriptorSetLayout descriptorSetLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65008   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( vk::DescriptorSetLayout descriptorSetLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65009   {
65010     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65011   }
65012 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65013   template<typename Dispatch>
destroyDescriptorSetLayout(vk::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65014   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( vk::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65015   {
65016     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65017   }
65018 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65019 
65020   template<typename Dispatch>
destroy(vk::DescriptorSetLayout descriptorSetLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65021   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorSetLayout descriptorSetLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65022   {
65023     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65024   }
65025 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65026   template<typename Dispatch>
destroy(vk::DescriptorSetLayout descriptorSetLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65027   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65028   {
65029     d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65030   }
65031 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65032 
65033   template<typename Dispatch>
destroyDescriptorUpdateTemplate(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65034   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65035   {
65036     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65037   }
65038 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65039   template<typename Dispatch>
destroyDescriptorUpdateTemplate(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65040   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65041   {
65042     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65043   }
65044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65045 
65046   template<typename Dispatch>
destroy(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65047   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65048   {
65049     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65050   }
65051 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65052   template<typename Dispatch>
destroy(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65053   VULKAN_HPP_INLINE void Device::destroy( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65054   {
65055     d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65056   }
65057 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65058 
65059   template<typename Dispatch>
destroyDescriptorUpdateTemplateKHR(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65060   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65061   {
65062     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65063   }
65064 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65065   template<typename Dispatch>
destroyDescriptorUpdateTemplateKHR(vk::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65066   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( vk::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65067   {
65068     d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65069   }
65070 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65071 
65072   template<typename Dispatch>
destroy(const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65073   VULKAN_HPP_INLINE void Device::destroy( const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65074   {
65075     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65076   }
65077 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65078   template<typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65079   VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65080   {
65081     d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65082   }
65083 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65084 
65085   template<typename Dispatch>
destroyEvent(vk::Event event,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65086   VULKAN_HPP_INLINE void Device::destroyEvent( vk::Event event, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65087   {
65088     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65089   }
65090 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65091   template<typename Dispatch>
destroyEvent(vk::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65092   VULKAN_HPP_INLINE void Device::destroyEvent( vk::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65093   {
65094     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65095   }
65096 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65097 
65098   template<typename Dispatch>
destroy(vk::Event event,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65099   VULKAN_HPP_INLINE void Device::destroy( vk::Event event, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65100   {
65101     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65102   }
65103 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65104   template<typename Dispatch>
destroy(vk::Event event,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65105   VULKAN_HPP_INLINE void Device::destroy( vk::Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65106   {
65107     d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65108   }
65109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65110 
65111   template<typename Dispatch>
destroyFence(vk::Fence fence,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65112   VULKAN_HPP_INLINE void Device::destroyFence( vk::Fence fence, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65113   {
65114     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65115   }
65116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65117   template<typename Dispatch>
destroyFence(vk::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65118   VULKAN_HPP_INLINE void Device::destroyFence( vk::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65119   {
65120     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65121   }
65122 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65123 
65124   template<typename Dispatch>
destroy(vk::Fence fence,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65125   VULKAN_HPP_INLINE void Device::destroy( vk::Fence fence, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65126   {
65127     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65128   }
65129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65130   template<typename Dispatch>
destroy(vk::Fence fence,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65131   VULKAN_HPP_INLINE void Device::destroy( vk::Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65132   {
65133     d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65134   }
65135 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65136 
65137   template<typename Dispatch>
destroyFramebuffer(vk::Framebuffer framebuffer,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65138   VULKAN_HPP_INLINE void Device::destroyFramebuffer( vk::Framebuffer framebuffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65139   {
65140     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65141   }
65142 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65143   template<typename Dispatch>
destroyFramebuffer(vk::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65144   VULKAN_HPP_INLINE void Device::destroyFramebuffer( vk::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65145   {
65146     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65147   }
65148 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65149 
65150   template<typename Dispatch>
destroy(vk::Framebuffer framebuffer,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65151   VULKAN_HPP_INLINE void Device::destroy( vk::Framebuffer framebuffer, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65152   {
65153     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65154   }
65155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65156   template<typename Dispatch>
destroy(vk::Framebuffer framebuffer,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65157   VULKAN_HPP_INLINE void Device::destroy( vk::Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65158   {
65159     d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65160   }
65161 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65162 
65163   template<typename Dispatch>
destroyImage(vk::Image image,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65164   VULKAN_HPP_INLINE void Device::destroyImage( vk::Image image, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65165   {
65166     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65167   }
65168 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65169   template<typename Dispatch>
destroyImage(vk::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65170   VULKAN_HPP_INLINE void Device::destroyImage( vk::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65171   {
65172     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65173   }
65174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65175 
65176   template<typename Dispatch>
destroy(vk::Image image,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65177   VULKAN_HPP_INLINE void Device::destroy( vk::Image image, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65178   {
65179     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65180   }
65181 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65182   template<typename Dispatch>
destroy(vk::Image image,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65183   VULKAN_HPP_INLINE void Device::destroy( vk::Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65184   {
65185     d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65186   }
65187 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65188 
65189   template<typename Dispatch>
destroyImageView(vk::ImageView imageView,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65190   VULKAN_HPP_INLINE void Device::destroyImageView( vk::ImageView imageView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65191   {
65192     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65193   }
65194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65195   template<typename Dispatch>
destroyImageView(vk::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65196   VULKAN_HPP_INLINE void Device::destroyImageView( vk::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65197   {
65198     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65199   }
65200 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65201 
65202   template<typename Dispatch>
destroy(vk::ImageView imageView,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65203   VULKAN_HPP_INLINE void Device::destroy( vk::ImageView imageView, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65204   {
65205     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65206   }
65207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65208   template<typename Dispatch>
destroy(vk::ImageView imageView,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65209   VULKAN_HPP_INLINE void Device::destroy( vk::ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65210   {
65211     d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65212   }
65213 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65214 
65215   template<typename Dispatch>
destroyIndirectCommandsLayoutNVX(vk::IndirectCommandsLayoutNVX indirectCommandsLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65216   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65217   {
65218     d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65219   }
65220 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65221   template<typename Dispatch>
destroyIndirectCommandsLayoutNVX(vk::IndirectCommandsLayoutNVX indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65222   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65223   {
65224     d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65225   }
65226 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65227 
65228   template<typename Dispatch>
destroy(vk::IndirectCommandsLayoutNVX indirectCommandsLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65229   VULKAN_HPP_INLINE void Device::destroy( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65230   {
65231     d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65232   }
65233 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65234   template<typename Dispatch>
destroy(vk::IndirectCommandsLayoutNVX indirectCommandsLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65235   VULKAN_HPP_INLINE void Device::destroy( vk::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65236   {
65237     d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65238   }
65239 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65240 
65241   template<typename Dispatch>
destroyObjectTableNVX(vk::ObjectTableNVX objectTable,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65242   VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( vk::ObjectTableNVX objectTable, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65243   {
65244     d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65245   }
65246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65247   template<typename Dispatch>
destroyObjectTableNVX(vk::ObjectTableNVX objectTable,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65248   VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( vk::ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65249   {
65250     d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65251   }
65252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65253 
65254   template<typename Dispatch>
destroy(vk::ObjectTableNVX objectTable,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65255   VULKAN_HPP_INLINE void Device::destroy( vk::ObjectTableNVX objectTable, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65256   {
65257     d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65258   }
65259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65260   template<typename Dispatch>
destroy(vk::ObjectTableNVX objectTable,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65261   VULKAN_HPP_INLINE void Device::destroy( vk::ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65262   {
65263     d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65264   }
65265 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65266 
65267   template<typename Dispatch>
destroyPipeline(vk::Pipeline pipeline,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65268   VULKAN_HPP_INLINE void Device::destroyPipeline( vk::Pipeline pipeline, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65269   {
65270     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65271   }
65272 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65273   template<typename Dispatch>
destroyPipeline(vk::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65274   VULKAN_HPP_INLINE void Device::destroyPipeline( vk::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65275   {
65276     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65277   }
65278 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65279 
65280   template<typename Dispatch>
destroy(vk::Pipeline pipeline,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65281   VULKAN_HPP_INLINE void Device::destroy( vk::Pipeline pipeline, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65282   {
65283     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65284   }
65285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65286   template<typename Dispatch>
destroy(vk::Pipeline pipeline,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65287   VULKAN_HPP_INLINE void Device::destroy( vk::Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65288   {
65289     d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65290   }
65291 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65292 
65293   template<typename Dispatch>
destroyPipelineCache(vk::PipelineCache pipelineCache,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65294   VULKAN_HPP_INLINE void Device::destroyPipelineCache( vk::PipelineCache pipelineCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65295   {
65296     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65297   }
65298 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65299   template<typename Dispatch>
destroyPipelineCache(vk::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65300   VULKAN_HPP_INLINE void Device::destroyPipelineCache( vk::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65301   {
65302     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65303   }
65304 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65305 
65306   template<typename Dispatch>
destroy(vk::PipelineCache pipelineCache,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65307   VULKAN_HPP_INLINE void Device::destroy( vk::PipelineCache pipelineCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65308   {
65309     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65310   }
65311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65312   template<typename Dispatch>
destroy(vk::PipelineCache pipelineCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65313   VULKAN_HPP_INLINE void Device::destroy( vk::PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65314   {
65315     d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65316   }
65317 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65318 
65319   template<typename Dispatch>
destroyPipelineLayout(vk::PipelineLayout pipelineLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65320   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( vk::PipelineLayout pipelineLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65321   {
65322     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65323   }
65324 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65325   template<typename Dispatch>
destroyPipelineLayout(vk::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65326   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( vk::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65327   {
65328     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65329   }
65330 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65331 
65332   template<typename Dispatch>
destroy(vk::PipelineLayout pipelineLayout,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65333   VULKAN_HPP_INLINE void Device::destroy( vk::PipelineLayout pipelineLayout, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65334   {
65335     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65336   }
65337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65338   template<typename Dispatch>
destroy(vk::PipelineLayout pipelineLayout,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65339   VULKAN_HPP_INLINE void Device::destroy( vk::PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65340   {
65341     d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65342   }
65343 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65344 
65345   template<typename Dispatch>
destroyQueryPool(vk::QueryPool queryPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65346   VULKAN_HPP_INLINE void Device::destroyQueryPool( vk::QueryPool queryPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65347   {
65348     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65349   }
65350 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65351   template<typename Dispatch>
destroyQueryPool(vk::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65352   VULKAN_HPP_INLINE void Device::destroyQueryPool( vk::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65353   {
65354     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65355   }
65356 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65357 
65358   template<typename Dispatch>
destroy(vk::QueryPool queryPool,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65359   VULKAN_HPP_INLINE void Device::destroy( vk::QueryPool queryPool, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65360   {
65361     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65362   }
65363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65364   template<typename Dispatch>
destroy(vk::QueryPool queryPool,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65365   VULKAN_HPP_INLINE void Device::destroy( vk::QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65366   {
65367     d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65368   }
65369 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65370 
65371   template<typename Dispatch>
destroyRenderPass(vk::RenderPass renderPass,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65372   VULKAN_HPP_INLINE void Device::destroyRenderPass( vk::RenderPass renderPass, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65373   {
65374     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65375   }
65376 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65377   template<typename Dispatch>
destroyRenderPass(vk::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65378   VULKAN_HPP_INLINE void Device::destroyRenderPass( vk::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65379   {
65380     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65381   }
65382 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65383 
65384   template<typename Dispatch>
destroy(vk::RenderPass renderPass,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65385   VULKAN_HPP_INLINE void Device::destroy( vk::RenderPass renderPass, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65386   {
65387     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65388   }
65389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65390   template<typename Dispatch>
destroy(vk::RenderPass renderPass,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65391   VULKAN_HPP_INLINE void Device::destroy( vk::RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65392   {
65393     d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65394   }
65395 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65396 
65397   template<typename Dispatch>
destroySampler(vk::Sampler sampler,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65398   VULKAN_HPP_INLINE void Device::destroySampler( vk::Sampler sampler, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65399   {
65400     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65401   }
65402 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65403   template<typename Dispatch>
destroySampler(vk::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65404   VULKAN_HPP_INLINE void Device::destroySampler( vk::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65405   {
65406     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65407   }
65408 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65409 
65410   template<typename Dispatch>
destroy(vk::Sampler sampler,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65411   VULKAN_HPP_INLINE void Device::destroy( vk::Sampler sampler, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65412   {
65413     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65414   }
65415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65416   template<typename Dispatch>
destroy(vk::Sampler sampler,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65417   VULKAN_HPP_INLINE void Device::destroy( vk::Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65418   {
65419     d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65420   }
65421 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65422 
65423   template<typename Dispatch>
destroySamplerYcbcrConversion(vk::SamplerYcbcrConversion ycbcrConversion,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65424   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65425   {
65426     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65427   }
65428 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65429   template<typename Dispatch>
destroySamplerYcbcrConversion(vk::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65430   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65431   {
65432     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65433   }
65434 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65435 
65436   template<typename Dispatch>
destroy(vk::SamplerYcbcrConversion ycbcrConversion,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65437   VULKAN_HPP_INLINE void Device::destroy( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65438   {
65439     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65440   }
65441 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65442   template<typename Dispatch>
destroy(vk::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65443   VULKAN_HPP_INLINE void Device::destroy( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65444   {
65445     d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65446   }
65447 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65448 
65449   template<typename Dispatch>
destroySamplerYcbcrConversionKHR(vk::SamplerYcbcrConversion ycbcrConversion,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65450   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( vk::SamplerYcbcrConversion ycbcrConversion, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65451   {
65452     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65453   }
65454 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65455   template<typename Dispatch>
destroySamplerYcbcrConversionKHR(vk::SamplerYcbcrConversion ycbcrConversion,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65456   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( vk::SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65457   {
65458     d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65459   }
65460 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65461 
65462   template<typename Dispatch>
destroySemaphore(vk::Semaphore semaphore,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65463   VULKAN_HPP_INLINE void Device::destroySemaphore( vk::Semaphore semaphore, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65464   {
65465     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65466   }
65467 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65468   template<typename Dispatch>
destroySemaphore(vk::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65469   VULKAN_HPP_INLINE void Device::destroySemaphore( vk::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65470   {
65471     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65472   }
65473 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65474 
65475   template<typename Dispatch>
destroy(vk::Semaphore semaphore,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65476   VULKAN_HPP_INLINE void Device::destroy( vk::Semaphore semaphore, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65477   {
65478     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65479   }
65480 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65481   template<typename Dispatch>
destroy(vk::Semaphore semaphore,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65482   VULKAN_HPP_INLINE void Device::destroy( vk::Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65483   {
65484     d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65485   }
65486 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65487 
65488   template<typename Dispatch>
destroyShaderModule(vk::ShaderModule shaderModule,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65489   VULKAN_HPP_INLINE void Device::destroyShaderModule( vk::ShaderModule shaderModule, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65490   {
65491     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65492   }
65493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65494   template<typename Dispatch>
destroyShaderModule(vk::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65495   VULKAN_HPP_INLINE void Device::destroyShaderModule( vk::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65496   {
65497     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65498   }
65499 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65500 
65501   template<typename Dispatch>
destroy(vk::ShaderModule shaderModule,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65502   VULKAN_HPP_INLINE void Device::destroy( vk::ShaderModule shaderModule, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65503   {
65504     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65505   }
65506 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65507   template<typename Dispatch>
destroy(vk::ShaderModule shaderModule,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65508   VULKAN_HPP_INLINE void Device::destroy( vk::ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65509   {
65510     d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65511   }
65512 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65513 
65514   template<typename Dispatch>
destroySwapchainKHR(vk::SwapchainKHR swapchain,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65515   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( vk::SwapchainKHR swapchain, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65516   {
65517     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65518   }
65519 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65520   template<typename Dispatch>
destroySwapchainKHR(vk::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65521   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( vk::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65522   {
65523     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65524   }
65525 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65526 
65527   template<typename Dispatch>
destroy(vk::SwapchainKHR swapchain,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65528   VULKAN_HPP_INLINE void Device::destroy( vk::SwapchainKHR swapchain, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65529   {
65530     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65531   }
65532 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65533   template<typename Dispatch>
destroy(vk::SwapchainKHR swapchain,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65534   VULKAN_HPP_INLINE void Device::destroy( vk::SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65535   {
65536     d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65537   }
65538 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65539 
65540   template<typename Dispatch>
destroyValidationCacheEXT(vk::ValidationCacheEXT validationCache,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65541   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( vk::ValidationCacheEXT validationCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65542   {
65543     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65544   }
65545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65546   template<typename Dispatch>
destroyValidationCacheEXT(vk::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65547   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( vk::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65548   {
65549     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65550   }
65551 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65552 
65553   template<typename Dispatch>
destroy(vk::ValidationCacheEXT validationCache,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65554   VULKAN_HPP_INLINE void Device::destroy( vk::ValidationCacheEXT validationCache, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65555   {
65556     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65557   }
65558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65559   template<typename Dispatch>
destroy(vk::ValidationCacheEXT validationCache,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65560   VULKAN_HPP_INLINE void Device::destroy( vk::ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65561   {
65562     d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65563   }
65564 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65565 
65566 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
65567   template<typename Dispatch>
waitIdle(Dispatch const & d) const65568   VULKAN_HPP_INLINE Result Device::waitIdle(Dispatch const &d) const
65569   {
65570     return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
65571   }
65572 #else
65573   template<typename Dispatch>
waitIdle(Dispatch const & d) const65574   VULKAN_HPP_INLINE ResultValueType<void>::type Device::waitIdle(Dispatch const &d ) const
65575   {
65576     Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
65577     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitIdle" );
65578   }
65579 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65580 
65581   template<typename Dispatch>
displayPowerControlEXT(vk::DisplayKHR display,const vk::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const65582   VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( vk::DisplayKHR display, const vk::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d) const
65583   {
65584     return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( pDisplayPowerInfo ) ) );
65585   }
65586 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65587   template<typename Dispatch>
displayPowerControlEXT(vk::DisplayKHR display,const DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const65588   VULKAN_HPP_INLINE ResultValueType<void>::type Device::displayPowerControlEXT( vk::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d ) const
65589   {
65590     Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( &displayPowerInfo ) ) );
65591     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::displayPowerControlEXT" );
65592   }
65593 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65594 
65595   template<typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const vk::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const65596   VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const vk::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const
65597   {
65598     return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
65599   }
65600 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65601   template<typename Dispatch>
flushMappedMemoryRanges(ArrayProxy<const vk::MappedMemoryRange> memoryRanges,Dispatch const & d) const65602   VULKAN_HPP_INLINE ResultValueType<void>::type Device::flushMappedMemoryRanges( ArrayProxy<const vk::MappedMemoryRange> memoryRanges, Dispatch const &d ) const
65603   {
65604     Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
65605     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::flushMappedMemoryRanges" );
65606   }
65607 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65608 
65609   template<typename Dispatch>
freeCommandBuffers(vk::CommandPool commandPool,uint32_t commandBufferCount,const vk::CommandBuffer * pCommandBuffers,Dispatch const & d) const65610   VULKAN_HPP_INLINE void Device::freeCommandBuffers( vk::CommandPool commandPool, uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d) const
65611   {
65612     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
65613   }
65614 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65615   template<typename Dispatch>
freeCommandBuffers(vk::CommandPool commandPool,ArrayProxy<const vk::CommandBuffer> commandBuffers,Dispatch const & d) const65616   VULKAN_HPP_INLINE void Device::freeCommandBuffers( vk::CommandPool commandPool, ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d ) const
65617   {
65618     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
65619   }
65620 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65621 
65622   template<typename Dispatch>
free(vk::CommandPool commandPool,uint32_t commandBufferCount,const vk::CommandBuffer * pCommandBuffers,Dispatch const & d) const65623   VULKAN_HPP_INLINE void Device::free( vk::CommandPool commandPool, uint32_t commandBufferCount, const vk::CommandBuffer* pCommandBuffers, Dispatch const &d) const
65624   {
65625     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
65626   }
65627 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65628   template<typename Dispatch>
free(vk::CommandPool commandPool,ArrayProxy<const vk::CommandBuffer> commandBuffers,Dispatch const & d) const65629   VULKAN_HPP_INLINE void Device::free( vk::CommandPool commandPool, ArrayProxy<const vk::CommandBuffer> commandBuffers, Dispatch const &d ) const
65630   {
65631     d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
65632   }
65633 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65634 
65635   template<typename Dispatch>
freeDescriptorSets(vk::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const vk::DescriptorSet * pDescriptorSets,Dispatch const & d) const65636   VULKAN_HPP_INLINE Result Device::freeDescriptorSets( vk::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, Dispatch const &d) const
65637   {
65638     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
65639   }
65640 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65641   template<typename Dispatch>
freeDescriptorSets(vk::DescriptorPool descriptorPool,ArrayProxy<const vk::DescriptorSet> descriptorSets,Dispatch const & d) const65642   VULKAN_HPP_INLINE ResultValueType<void>::type Device::freeDescriptorSets( vk::DescriptorPool descriptorPool, ArrayProxy<const vk::DescriptorSet> descriptorSets, Dispatch const &d ) const
65643   {
65644     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
65645     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::freeDescriptorSets" );
65646   }
65647 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65648 
65649   template<typename Dispatch>
free(vk::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const vk::DescriptorSet * pDescriptorSets,Dispatch const & d) const65650   VULKAN_HPP_INLINE Result Device::free( vk::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const vk::DescriptorSet* pDescriptorSets, Dispatch const &d) const
65651   {
65652     return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
65653   }
65654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65655   template<typename Dispatch>
free(vk::DescriptorPool descriptorPool,ArrayProxy<const vk::DescriptorSet> descriptorSets,Dispatch const & d) const65656   VULKAN_HPP_INLINE ResultValueType<void>::type Device::free( vk::DescriptorPool descriptorPool, ArrayProxy<const vk::DescriptorSet> descriptorSets, Dispatch const &d ) const
65657   {
65658     Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
65659     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::free" );
65660   }
65661 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65662 
65663   template<typename Dispatch>
freeMemory(vk::DeviceMemory memory,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65664   VULKAN_HPP_INLINE void Device::freeMemory( vk::DeviceMemory memory, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65665   {
65666     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65667   }
65668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65669   template<typename Dispatch>
freeMemory(vk::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65670   VULKAN_HPP_INLINE void Device::freeMemory( vk::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65671   {
65672     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65673   }
65674 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65675 
65676   template<typename Dispatch>
free(vk::DeviceMemory memory,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const65677   VULKAN_HPP_INLINE void Device::free( vk::DeviceMemory memory, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
65678   {
65679     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
65680   }
65681 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65682   template<typename Dispatch>
free(vk::DeviceMemory memory,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const65683   VULKAN_HPP_INLINE void Device::free( vk::DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
65684   {
65685     d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
65686   }
65687 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65688 
65689   template<typename Dispatch>
getAccelerationStructureHandleNV(vk::AccelerationStructureNV accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const65690   VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( vk::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d) const
65691   {
65692     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), dataSize, pData ) );
65693   }
65694 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65695   template<typename T, typename Dispatch>
getAccelerationStructureHandleNV(vk::AccelerationStructureNV accelerationStructure,ArrayProxy<T> data,Dispatch const & d) const65696   VULKAN_HPP_INLINE ResultValueType<void>::type Device::getAccelerationStructureHandleNV( vk::AccelerationStructureNV accelerationStructure, ArrayProxy<T> data, Dispatch const &d ) const
65697   {
65698     Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
65699     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
65700   }
65701 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65702 
65703   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const vk::AccelerationStructureMemoryRequirementsInfoNV * pInfo,vk::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const65704   VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const vk::AccelerationStructureMemoryRequirementsInfoNV* pInfo, vk::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const
65705   {
65706     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) );
65707   }
65708 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65709   template<typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const65710   VULKAN_HPP_INLINE vk::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const
65711   {
65712     vk::MemoryRequirements2KHR memoryRequirements;
65713     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
65714     return memoryRequirements;
65715   }
65716   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAccelerationStructureMemoryRequirementsNV(const AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const65717   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const
65718   {
65719     StructureChain<X, Y, Z...> structureChain;
65720     vk::MemoryRequirements2KHR& memoryRequirements = structureChain.template get<vk::MemoryRequirements2KHR>();
65721     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
65722     return structureChain;
65723   }
65724 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65725 
65726 #ifdef VK_USE_PLATFORM_ANDROID_KHR
65727   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,vk::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const65728   VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, vk::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const
65729   {
65730     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( pProperties ) ) );
65731   }
65732 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65733   template<typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const65734   VULKAN_HPP_INLINE ResultValueType<vk::AndroidHardwareBufferPropertiesANDROID>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
65735   {
65736     vk::AndroidHardwareBufferPropertiesANDROID properties;
65737     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
65738     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
65739   }
65740   template<typename X, typename Y, typename ...Z, typename Dispatch>
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const65741   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
65742   {
65743     StructureChain<X, Y, Z...> structureChain;
65744     vk::AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<vk::AndroidHardwareBufferPropertiesANDROID>();
65745     Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
65746     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
65747   }
65748 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65749 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
65750 
65751   template<typename Dispatch>
getBufferAddressEXT(const vk::BufferDeviceAddressInfoEXT * pInfo,Dispatch const & d) const65752   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const vk::BufferDeviceAddressInfoEXT* pInfo, Dispatch const &d) const
65753   {
65754     return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( pInfo ) ) );
65755   }
65756 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65757   template<typename Dispatch>
getBufferAddressEXT(const BufferDeviceAddressInfoEXT & info,Dispatch const & d) const65758   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfoEXT & info, Dispatch const &d ) const
65759   {
65760     return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( &info ) );
65761   }
65762 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65763 
65764   template<typename Dispatch>
getBufferMemoryRequirements(vk::Buffer buffer,vk::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const65765   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( vk::Buffer buffer, vk::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const
65766   {
65767     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
65768   }
65769 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65770   template<typename Dispatch>
getBufferMemoryRequirements(vk::Buffer buffer,Dispatch const & d) const65771   VULKAN_HPP_INLINE vk::MemoryRequirements Device::getBufferMemoryRequirements( vk::Buffer buffer, Dispatch const &d ) const
65772   {
65773     vk::MemoryRequirements memoryRequirements;
65774     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
65775     return memoryRequirements;
65776   }
65777 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65778 
65779   template<typename Dispatch>
getBufferMemoryRequirements2(const vk::BufferMemoryRequirementsInfo2 * pInfo,vk::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const65780   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const vk::BufferMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
65781   {
65782     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
65783   }
65784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65785   template<typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const65786   VULKAN_HPP_INLINE vk::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
65787   {
65788     vk::MemoryRequirements2 memoryRequirements;
65789     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
65790     return memoryRequirements;
65791   }
65792   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const65793   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
65794   {
65795     StructureChain<X, Y, Z...> structureChain;
65796     vk::MemoryRequirements2& memoryRequirements = structureChain.template get<vk::MemoryRequirements2>();
65797     d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
65798     return structureChain;
65799   }
65800 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65801 
65802   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const vk::BufferMemoryRequirementsInfo2 * pInfo,vk::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const65803   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const vk::BufferMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
65804   {
65805     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
65806   }
65807 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65808   template<typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const65809   VULKAN_HPP_INLINE vk::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
65810   {
65811     vk::MemoryRequirements2 memoryRequirements;
65812     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
65813     return memoryRequirements;
65814   }
65815   template<typename X, typename Y, typename ...Z, typename Dispatch>
getBufferMemoryRequirements2KHR(const BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const65816   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
65817   {
65818     StructureChain<X, Y, Z...> structureChain;
65819     vk::MemoryRequirements2& memoryRequirements = structureChain.template get<vk::MemoryRequirements2>();
65820     d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
65821     return structureChain;
65822   }
65823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65824 
65825   template<typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const vk::CalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const65826   VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const vk::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d) const
65827   {
65828     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
65829   }
65830 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65831   template<typename Dispatch>
getCalibratedTimestampsEXT(ArrayProxy<const vk::CalibratedTimestampInfoEXT> timestampInfos,ArrayProxy<uint64_t> timestamps,Dispatch const & d) const65832   VULKAN_HPP_INLINE ResultValueType<uint64_t>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const vk::CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d ) const
65833   {
65834 #ifdef VULKAN_HPP_NO_EXCEPTIONS
65835     VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
65836 #else
65837     if ( timestampInfos.size() != timestamps.size() )
65838     {
65839       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
65840     }
65841 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
65842     uint64_t maxDeviation;
65843     Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
65844     return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
65845   }
65846 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65847 
65848   template<typename Dispatch>
getDescriptorSetLayoutSupport(const vk::DescriptorSetLayoutCreateInfo * pCreateInfo,vk::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const65849   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, vk::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const
65850   {
65851     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
65852   }
65853 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65854   template<typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const65855   VULKAN_HPP_INLINE vk::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
65856   {
65857     vk::DescriptorSetLayoutSupport support;
65858     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
65859     return support;
65860   }
65861   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupport(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const65862   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
65863   {
65864     StructureChain<X, Y, Z...> structureChain;
65865     vk::DescriptorSetLayoutSupport& support = structureChain.template get<vk::DescriptorSetLayoutSupport>();
65866     d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
65867     return structureChain;
65868   }
65869 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65870 
65871   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const vk::DescriptorSetLayoutCreateInfo * pCreateInfo,vk::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const65872   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const vk::DescriptorSetLayoutCreateInfo* pCreateInfo, vk::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const
65873   {
65874     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
65875   }
65876 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65877   template<typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const65878   VULKAN_HPP_INLINE vk::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
65879   {
65880     vk::DescriptorSetLayoutSupport support;
65881     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
65882     return support;
65883   }
65884   template<typename X, typename Y, typename ...Z, typename Dispatch>
getDescriptorSetLayoutSupportKHR(const DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const65885   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
65886   {
65887     StructureChain<X, Y, Z...> structureChain;
65888     vk::DescriptorSetLayoutSupport& support = structureChain.template get<vk::DescriptorSetLayoutSupport>();
65889     d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
65890     return structureChain;
65891   }
65892 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65893 
65894   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,vk::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const65895   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, vk::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const
65896   {
65897     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
65898   }
65899 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65900   template<typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const65901   VULKAN_HPP_INLINE vk::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const
65902   {
65903     vk::PeerMemoryFeatureFlags peerMemoryFeatures;
65904     d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
65905     return peerMemoryFeatures;
65906   }
65907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65908 
65909   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,vk::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const65910   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, vk::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const
65911   {
65912     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
65913   }
65914 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65915   template<typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const65916   VULKAN_HPP_INLINE vk::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const
65917   {
65918     vk::PeerMemoryFeatureFlags peerMemoryFeatures;
65919     d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
65920     return peerMemoryFeatures;
65921   }
65922 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65923 
65924   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(vk::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const65925   VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( vk::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d) const
65926   {
65927     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( pDeviceGroupPresentCapabilities ) ) );
65928   }
65929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65930   template<typename Dispatch>
getGroupPresentCapabilitiesKHR(Dispatch const & d) const65931   VULKAN_HPP_INLINE ResultValueType<vk::DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR(Dispatch const &d ) const
65932   {
65933     vk::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
65934     Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( &deviceGroupPresentCapabilities ) ) );
65935     return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupPresentCapabilitiesKHR" );
65936   }
65937 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65938 
65939 #ifdef VK_USE_PLATFORM_WIN32_KHR
65940   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const vk::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,vk::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const65941   VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, vk::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const
65942   {
65943     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
65944   }
65945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65946   template<typename Dispatch>
getGroupSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const65947   VULKAN_HPP_INLINE ResultValueType<vk::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
65948   {
65949     vk::DeviceGroupPresentModeFlagsKHR modes;
65950     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
65951     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModes2EXT" );
65952   }
65953 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65954 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
65955 
65956   template<typename Dispatch>
getGroupSurfacePresentModesKHR(vk::SurfaceKHR surface,vk::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const65957   VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( vk::SurfaceKHR surface, vk::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const
65958   {
65959     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
65960   }
65961 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65962   template<typename Dispatch>
getGroupSurfacePresentModesKHR(vk::SurfaceKHR surface,Dispatch const & d) const65963   VULKAN_HPP_INLINE ResultValueType<vk::DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModesKHR( vk::SurfaceKHR surface, Dispatch const &d ) const
65964   {
65965     vk::DeviceGroupPresentModeFlagsKHR modes;
65966     Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
65967     return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModesKHR" );
65968   }
65969 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65970 
65971   template<typename Dispatch>
getMemoryCommitment(vk::DeviceMemory memory,vk::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const65972   VULKAN_HPP_INLINE void Device::getMemoryCommitment( vk::DeviceMemory memory, vk::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d) const
65973   {
65974     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( pCommittedMemoryInBytes ) );
65975   }
65976 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65977   template<typename Dispatch>
getMemoryCommitment(vk::DeviceMemory memory,Dispatch const & d) const65978   VULKAN_HPP_INLINE vk::DeviceSize Device::getMemoryCommitment( vk::DeviceMemory memory, Dispatch const &d ) const
65979   {
65980     vk::DeviceSize committedMemoryInBytes;
65981     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( &committedMemoryInBytes ) );
65982     return committedMemoryInBytes;
65983   }
65984 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65985 
65986   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const65987   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const
65988   {
65989     return d.vkGetDeviceProcAddr( m_device, pName );
65990   }
65991 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
65992   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const65993   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const
65994   {
65995     return d.vkGetDeviceProcAddr( m_device, name.c_str() );
65996   }
65997 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
65998 
65999   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,vk::Queue * pQueue,Dispatch const & d) const66000   VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, vk::Queue* pQueue, Dispatch const &d) const
66001   {
66002     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( pQueue ) );
66003   }
66004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66005   template<typename Dispatch>
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const66006   VULKAN_HPP_INLINE vk::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const
66007   {
66008     vk::Queue queue;
66009     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( &queue ) );
66010     return queue;
66011   }
66012 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66013 
66014   template<typename Dispatch>
getQueue2(const vk::DeviceQueueInfo2 * pQueueInfo,vk::Queue * pQueue,Dispatch const & d) const66015   VULKAN_HPP_INLINE void Device::getQueue2( const vk::DeviceQueueInfo2* pQueueInfo, vk::Queue* pQueue, Dispatch const &d) const
66016   {
66017     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( pQueueInfo ), reinterpret_cast<VkQueue*>( pQueue ) );
66018   }
66019 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66020   template<typename Dispatch>
getQueue2(const DeviceQueueInfo2 & queueInfo,Dispatch const & d) const66021   VULKAN_HPP_INLINE vk::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const
66022   {
66023     vk::Queue queue;
66024     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( &queueInfo ), reinterpret_cast<VkQueue*>( &queue ) );
66025     return queue;
66026   }
66027 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66028 
66029 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
66030   template<typename Dispatch>
getEventStatus(vk::Event event,Dispatch const & d) const66031   VULKAN_HPP_INLINE Result Device::getEventStatus( vk::Event event, Dispatch const &d) const
66032   {
66033     return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
66034   }
66035 #else
66036   template<typename Dispatch>
getEventStatus(vk::Event event,Dispatch const & d) const66037   VULKAN_HPP_INLINE Result Device::getEventStatus( vk::Event event, Dispatch const &d ) const
66038   {
66039     Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
66040     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getEventStatus", { Result::eEventSet, Result::eEventReset } );
66041   }
66042 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66043 
66044   template<typename Dispatch>
getFenceFdKHR(const vk::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const66045   VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const vk::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
66046   {
66047     return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
66048   }
66049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66050   template<typename Dispatch>
getFenceFdKHR(const FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const66051   VULKAN_HPP_INLINE ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
66052   {
66053     int fd;
66054     Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( &getFdInfo ), &fd ) );
66055     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceFdKHR" );
66056   }
66057 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66058 
66059 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
66060   template<typename Dispatch>
getFenceStatus(vk::Fence fence,Dispatch const & d) const66061   VULKAN_HPP_INLINE Result Device::getFenceStatus( vk::Fence fence, Dispatch const &d) const
66062   {
66063     return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
66064   }
66065 #else
66066   template<typename Dispatch>
getFenceStatus(vk::Fence fence,Dispatch const & d) const66067   VULKAN_HPP_INLINE Result Device::getFenceStatus( vk::Fence fence, Dispatch const &d ) const
66068   {
66069     Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
66070     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceStatus", { Result::eSuccess, Result::eNotReady } );
66071   }
66072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66073 
66074 #ifdef VK_USE_PLATFORM_WIN32_KHR
66075   template<typename Dispatch>
getFenceWin32HandleKHR(const vk::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const66076   VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const vk::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
66077   {
66078     return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
66079   }
66080 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66081   template<typename Dispatch>
getFenceWin32HandleKHR(const FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const66082   VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
66083   {
66084     HANDLE handle;
66085     Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
66086     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceWin32HandleKHR" );
66087   }
66088 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66089 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66090 
66091   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(vk::Image image,vk::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const66092   VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( vk::Image image, vk::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d) const
66093   {
66094     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( pProperties ) ) );
66095   }
66096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66097   template<typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(vk::Image image,Dispatch const & d) const66098   VULKAN_HPP_INLINE ResultValueType<vk::ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( vk::Image image, Dispatch const &d ) const
66099   {
66100     vk::ImageDrmFormatModifierPropertiesEXT properties;
66101     Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( &properties ) ) );
66102     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageDrmFormatModifierPropertiesEXT" );
66103   }
66104 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66105 
66106   template<typename Dispatch>
getImageMemoryRequirements(vk::Image image,vk::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const66107   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( vk::Image image, vk::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const
66108   {
66109     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
66110   }
66111 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66112   template<typename Dispatch>
getImageMemoryRequirements(vk::Image image,Dispatch const & d) const66113   VULKAN_HPP_INLINE vk::MemoryRequirements Device::getImageMemoryRequirements( vk::Image image, Dispatch const &d ) const
66114   {
66115     vk::MemoryRequirements memoryRequirements;
66116     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
66117     return memoryRequirements;
66118   }
66119 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66120 
66121   template<typename Dispatch>
getImageMemoryRequirements2(const vk::ImageMemoryRequirementsInfo2 * pInfo,vk::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const66122   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const vk::ImageMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
66123   {
66124     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
66125   }
66126 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66127   template<typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const66128   VULKAN_HPP_INLINE vk::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66129   {
66130     vk::MemoryRequirements2 memoryRequirements;
66131     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
66132     return memoryRequirements;
66133   }
66134   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const66135   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66136   {
66137     StructureChain<X, Y, Z...> structureChain;
66138     vk::MemoryRequirements2& memoryRequirements = structureChain.template get<vk::MemoryRequirements2>();
66139     d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
66140     return structureChain;
66141   }
66142 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66143 
66144   template<typename Dispatch>
getImageMemoryRequirements2KHR(const vk::ImageMemoryRequirementsInfo2 * pInfo,vk::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const66145   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const vk::ImageMemoryRequirementsInfo2* pInfo, vk::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
66146   {
66147     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
66148   }
66149 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66150   template<typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const66151   VULKAN_HPP_INLINE vk::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66152   {
66153     vk::MemoryRequirements2 memoryRequirements;
66154     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
66155     return memoryRequirements;
66156   }
66157   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageMemoryRequirements2KHR(const ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const66158   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66159   {
66160     StructureChain<X, Y, Z...> structureChain;
66161     vk::MemoryRequirements2& memoryRequirements = structureChain.template get<vk::MemoryRequirements2>();
66162     d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
66163     return structureChain;
66164   }
66165 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66166 
66167   template<typename Dispatch>
getImageSparseMemoryRequirements(vk::Image image,uint32_t * pSparseMemoryRequirementCount,vk::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const66168   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( vk::Image image, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d) const
66169   {
66170     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( pSparseMemoryRequirements ) );
66171   }
66172 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66173   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements(vk::Image image,Dispatch const & d) const66174   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( vk::Image image, Dispatch const &d ) const
66175   {
66176     std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements;
66177     uint32_t sparseMemoryRequirementCount;
66178     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
66179     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66180     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
66181     return sparseMemoryRequirements;
66182   }
66183   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements(vk::Image image,Allocator const & vectorAllocator,Dispatch const & d) const66184   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( vk::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const
66185   {
66186     std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements( vectorAllocator );
66187     uint32_t sparseMemoryRequirementCount;
66188     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
66189     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66190     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
66191     return sparseMemoryRequirements;
66192   }
66193 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66194 
66195   template<typename Dispatch>
getImageSparseMemoryRequirements2(const vk::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,vk::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const66196   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const vk::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const
66197   {
66198     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
66199   }
66200 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66201   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const66202   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66203   {
66204     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
66205     uint32_t sparseMemoryRequirementCount;
66206     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
66207     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66208     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
66209     return sparseMemoryRequirements;
66210   }
66211   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2(const ImageSparseMemoryRequirementsInfo2 & info,Allocator const & vectorAllocator,Dispatch const & d) const66212   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
66213   {
66214     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
66215     uint32_t sparseMemoryRequirementCount;
66216     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
66217     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66218     d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
66219     return sparseMemoryRequirements;
66220   }
66221 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66222 
66223   template<typename Dispatch>
getImageSparseMemoryRequirements2KHR(const vk::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,vk::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const66224   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const vk::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, vk::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const
66225   {
66226     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
66227   }
66228 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66229   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const66230   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
66231   {
66232     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
66233     uint32_t sparseMemoryRequirementCount;
66234     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
66235     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66236     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
66237     return sparseMemoryRequirements;
66238   }
66239   template<typename Allocator, typename Dispatch>
getImageSparseMemoryRequirements2KHR(const ImageSparseMemoryRequirementsInfo2 & info,Allocator const & vectorAllocator,Dispatch const & d) const66240   VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
66241   {
66242     std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
66243     uint32_t sparseMemoryRequirementCount;
66244     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
66245     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
66246     d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
66247     return sparseMemoryRequirements;
66248   }
66249 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66250 
66251   template<typename Dispatch>
getImageSubresourceLayout(vk::Image image,const vk::ImageSubresource * pSubresource,vk::SubresourceLayout * pLayout,Dispatch const & d) const66252   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( vk::Image image, const vk::ImageSubresource* pSubresource, vk::SubresourceLayout* pLayout, Dispatch const &d) const
66253   {
66254     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( pSubresource ), reinterpret_cast<VkSubresourceLayout*>( pLayout ) );
66255   }
66256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66257   template<typename Dispatch>
getImageSubresourceLayout(vk::Image image,const ImageSubresource & subresource,Dispatch const & d) const66258   VULKAN_HPP_INLINE vk::SubresourceLayout Device::getImageSubresourceLayout( vk::Image image, const ImageSubresource & subresource, Dispatch const &d ) const
66259   {
66260     vk::SubresourceLayout layout;
66261     d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( &subresource ), reinterpret_cast<VkSubresourceLayout*>( &layout ) );
66262     return layout;
66263   }
66264 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66265 
66266   template<typename Dispatch>
getImageViewHandleNVX(const vk::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const66267   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const vk::ImageViewHandleInfoNVX* pInfo, Dispatch const &d) const
66268   {
66269     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( pInfo ) );
66270   }
66271 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66272   template<typename Dispatch>
getImageViewHandleNVX(const ImageViewHandleInfoNVX & info,Dispatch const & d) const66273   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d ) const
66274   {
66275     return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( &info ) );
66276   }
66277 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66278 
66279 #ifdef VK_USE_PLATFORM_ANDROID_KHR
66280   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const vk::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const66281   VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const vk::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d) const
66282   {
66283     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( pInfo ), pBuffer ) );
66284   }
66285 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66286   template<typename Dispatch>
getMemoryAndroidHardwareBufferANDROID(const MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const66287   VULKAN_HPP_INLINE ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const
66288   {
66289     struct AHardwareBuffer* buffer;
66290     Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( &info ), &buffer ) );
66291     return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" );
66292   }
66293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66294 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
66295 
66296   template<typename Dispatch>
getMemoryFdKHR(const vk::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const66297   VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const vk::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
66298   {
66299     return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
66300   }
66301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66302   template<typename Dispatch>
getMemoryFdKHR(const MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const66303   VULKAN_HPP_INLINE ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
66304   {
66305     int fd;
66306     Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( &getFdInfo ), &fd ) );
66307     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdKHR" );
66308   }
66309 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66310 
66311   template<typename Dispatch>
getMemoryFdPropertiesKHR(vk::ExternalMemoryHandleTypeFlagBits handleType,int fd,vk::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const66312   VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, int fd, vk::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d) const
66313   {
66314     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( pMemoryFdProperties ) ) );
66315   }
66316 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66317   template<typename Dispatch>
getMemoryFdPropertiesKHR(vk::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const66318   VULKAN_HPP_INLINE ResultValueType<vk::MemoryFdPropertiesKHR>::type Device::getMemoryFdPropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d ) const
66319   {
66320     vk::MemoryFdPropertiesKHR memoryFdProperties;
66321     Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( &memoryFdProperties ) ) );
66322     return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdPropertiesKHR" );
66323   }
66324 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66325 
66326   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(vk::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,vk::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const66327   VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( vk::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, vk::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d) const
66328   {
66329     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( pMemoryHostPointerProperties ) ) );
66330   }
66331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66332   template<typename Dispatch>
getMemoryHostPointerPropertiesEXT(vk::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const66333   VULKAN_HPP_INLINE ResultValueType<vk::MemoryHostPointerPropertiesEXT>::type Device::getMemoryHostPointerPropertiesEXT( vk::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d ) const
66334   {
66335     vk::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
66336     Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( &memoryHostPointerProperties ) ) );
66337     return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryHostPointerPropertiesEXT" );
66338   }
66339 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66340 
66341 #ifdef VK_USE_PLATFORM_WIN32_KHR
66342   template<typename Dispatch>
getMemoryWin32HandleKHR(const vk::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const66343   VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const vk::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
66344   {
66345     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
66346   }
66347 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66348   template<typename Dispatch>
getMemoryWin32HandleKHR(const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const66349   VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
66350   {
66351     HANDLE handle;
66352     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
66353     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleKHR" );
66354   }
66355 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66356 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66357 
66358 #ifdef VK_USE_PLATFORM_WIN32_KHR
66359   template<typename Dispatch>
getMemoryWin32HandleNV(vk::DeviceMemory memory,vk::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const66360   VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( vk::DeviceMemory memory, vk::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d) const
66361   {
66362     return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
66363   }
66364 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66365   template<typename Dispatch>
getMemoryWin32HandleNV(vk::DeviceMemory memory,vk::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const66366   VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getMemoryWin32HandleNV( vk::DeviceMemory memory, vk::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d ) const
66367   {
66368     HANDLE handle;
66369     Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
66370     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleNV" );
66371   }
66372 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66373 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66374 
66375 #ifdef VK_USE_PLATFORM_WIN32_KHR
66376   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(vk::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,vk::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const66377   VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, vk::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d) const
66378   {
66379     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( pMemoryWin32HandleProperties ) ) );
66380   }
66381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66382   template<typename Dispatch>
getMemoryWin32HandlePropertiesKHR(vk::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const66383   VULKAN_HPP_INLINE ResultValueType<vk::MemoryWin32HandlePropertiesKHR>::type Device::getMemoryWin32HandlePropertiesKHR( vk::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d ) const
66384   {
66385     vk::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
66386     Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( &memoryWin32HandleProperties ) ) );
66387     return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandlePropertiesKHR" );
66388   }
66389 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66390 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66391 
66392   template<typename Dispatch>
getPastPresentationTimingGOOGLE(vk::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,vk::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const66393   VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, vk::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d) const
66394   {
66395     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( pPresentationTimings ) ) );
66396   }
66397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66398   template<typename Allocator, typename Dispatch>
getPastPresentationTimingGOOGLE(vk::SwapchainKHR swapchain,Dispatch const & d) const66399   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, Dispatch const &d ) const
66400   {
66401     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings;
66402     uint32_t presentationTimingCount;
66403     Result result;
66404     do
66405     {
66406       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
66407       if ( ( result == Result::eSuccess ) && presentationTimingCount )
66408       {
66409         presentationTimings.resize( presentationTimingCount );
66410         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
66411       }
66412     } while ( result == Result::eIncomplete );
66413     if ( result == Result::eSuccess )
66414     {
66415       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
66416       presentationTimings.resize( presentationTimingCount );
66417     }
66418     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
66419   }
66420   template<typename Allocator, typename Dispatch>
getPastPresentationTimingGOOGLE(vk::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const66421   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( vk::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
66422   {
66423     std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings( vectorAllocator );
66424     uint32_t presentationTimingCount;
66425     Result result;
66426     do
66427     {
66428       result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
66429       if ( ( result == Result::eSuccess ) && presentationTimingCount )
66430       {
66431         presentationTimings.resize( presentationTimingCount );
66432         result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
66433       }
66434     } while ( result == Result::eIncomplete );
66435     if ( result == Result::eSuccess )
66436     {
66437       VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
66438       presentationTimings.resize( presentationTimingCount );
66439     }
66440     return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
66441   }
66442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66443 
66444   template<typename Dispatch>
getPerformanceParameterINTEL(vk::PerformanceParameterTypeINTEL parameter,vk::PerformanceValueINTEL * pValue,Dispatch const & d) const66445   VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( vk::PerformanceParameterTypeINTEL parameter, vk::PerformanceValueINTEL* pValue, Dispatch const &d) const
66446   {
66447     return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( pValue ) ) );
66448   }
66449 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66450   template<typename Dispatch>
getPerformanceParameterINTEL(vk::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const66451   VULKAN_HPP_INLINE ResultValueType<vk::PerformanceValueINTEL>::type Device::getPerformanceParameterINTEL( vk::PerformanceParameterTypeINTEL parameter, Dispatch const &d ) const
66452   {
66453     vk::PerformanceValueINTEL value;
66454     Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( &value ) ) );
66455     return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getPerformanceParameterINTEL" );
66456   }
66457 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66458 
66459   template<typename Dispatch>
getPipelineCacheData(vk::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const66460   VULKAN_HPP_INLINE Result Device::getPipelineCacheData( vk::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d) const
66461   {
66462     return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
66463   }
66464 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66465   template<typename Allocator, typename Dispatch>
getPipelineCacheData(vk::PipelineCache pipelineCache,Dispatch const & d) const66466   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( vk::PipelineCache pipelineCache, Dispatch const &d ) const
66467   {
66468     std::vector<uint8_t,Allocator> data;
66469     size_t dataSize;
66470     Result result;
66471     do
66472     {
66473       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
66474       if ( ( result == Result::eSuccess ) && dataSize )
66475       {
66476         data.resize( dataSize );
66477         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
66478       }
66479     } while ( result == Result::eIncomplete );
66480     if ( result == Result::eSuccess )
66481     {
66482       VULKAN_HPP_ASSERT( dataSize <= data.size() );
66483       data.resize( dataSize );
66484     }
66485     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
66486   }
66487   template<typename Allocator, typename Dispatch>
getPipelineCacheData(vk::PipelineCache pipelineCache,Allocator const & vectorAllocator,Dispatch const & d) const66488   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( vk::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const
66489   {
66490     std::vector<uint8_t,Allocator> data( vectorAllocator );
66491     size_t dataSize;
66492     Result result;
66493     do
66494     {
66495       result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
66496       if ( ( result == Result::eSuccess ) && dataSize )
66497       {
66498         data.resize( dataSize );
66499         result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
66500       }
66501     } while ( result == Result::eIncomplete );
66502     if ( result == Result::eSuccess )
66503     {
66504       VULKAN_HPP_ASSERT( dataSize <= data.size() );
66505       data.resize( dataSize );
66506     }
66507     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
66508   }
66509 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66510 
66511   template<typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const vk::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,vk::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const66512   VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( const vk::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, vk::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const &d) const
66513   {
66514     return static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( pInternalRepresentations ) ) );
66515   }
66516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66517   template<typename Allocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const66518   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
66519   {
66520     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations;
66521     uint32_t internalRepresentationCount;
66522     Result result;
66523     do
66524     {
66525       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
66526       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
66527       {
66528         internalRepresentations.resize( internalRepresentationCount );
66529         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
66530       }
66531     } while ( result == Result::eIncomplete );
66532     if ( result == Result::eSuccess )
66533     {
66534       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
66535       internalRepresentations.resize( internalRepresentationCount );
66536     }
66537     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
66538   }
66539   template<typename Allocator, typename Dispatch>
getPipelineExecutableInternalRepresentationsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const66540   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableInternalRepresentationKHR,Allocator>>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
66541   {
66542     std::vector<PipelineExecutableInternalRepresentationKHR,Allocator> internalRepresentations( vectorAllocator );
66543     uint32_t internalRepresentationCount;
66544     Result result;
66545     do
66546     {
66547       result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, nullptr ) );
66548       if ( ( result == Result::eSuccess ) && internalRepresentationCount )
66549       {
66550         internalRepresentations.resize( internalRepresentationCount );
66551         result = static_cast<Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &internalRepresentationCount, reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR*>( internalRepresentations.data() ) ) );
66552       }
66553     } while ( result == Result::eIncomplete );
66554     if ( result == Result::eSuccess )
66555     {
66556       VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
66557       internalRepresentations.resize( internalRepresentationCount );
66558     }
66559     return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" );
66560   }
66561 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66562 
66563   template<typename Dispatch>
getPipelineExecutablePropertiesKHR(const vk::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,vk::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const66564   VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const vk::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, vk::PipelineExecutablePropertiesKHR* pProperties, Dispatch const &d) const
66565   {
66566     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( pPipelineInfo ), pExecutableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( pProperties ) ) );
66567   }
66568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66569   template<typename Allocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Dispatch const & d) const66570   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d ) const
66571   {
66572     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties;
66573     uint32_t executableCount;
66574     Result result;
66575     do
66576     {
66577       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
66578       if ( ( result == Result::eSuccess ) && executableCount )
66579       {
66580         properties.resize( executableCount );
66581         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
66582       }
66583     } while ( result == Result::eIncomplete );
66584     if ( result == Result::eSuccess )
66585     {
66586       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
66587       properties.resize( executableCount );
66588     }
66589     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
66590   }
66591   template<typename Allocator, typename Dispatch>
getPipelineExecutablePropertiesKHR(const PipelineInfoKHR & pipelineInfo,Allocator const & vectorAllocator,Dispatch const & d) const66592   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutablePropertiesKHR,Allocator>>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
66593   {
66594     std::vector<PipelineExecutablePropertiesKHR,Allocator> properties( vectorAllocator );
66595     uint32_t executableCount;
66596     Result result;
66597     do
66598     {
66599       result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, nullptr ) );
66600       if ( ( result == Result::eSuccess ) && executableCount )
66601       {
66602         properties.resize( executableCount );
66603         result = static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR*>( &pipelineInfo ), &executableCount, reinterpret_cast<VkPipelineExecutablePropertiesKHR*>( properties.data() ) ) );
66604       }
66605     } while ( result == Result::eIncomplete );
66606     if ( result == Result::eSuccess )
66607     {
66608       VULKAN_HPP_ASSERT( executableCount <= properties.size() );
66609       properties.resize( executableCount );
66610     }
66611     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" );
66612   }
66613 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66614 
66615   template<typename Dispatch>
getPipelineExecutableStatisticsKHR(const vk::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,vk::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const66616   VULKAN_HPP_INLINE Result Device::getPipelineExecutableStatisticsKHR( const vk::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, vk::PipelineExecutableStatisticKHR* pStatistics, Dispatch const &d) const
66617   {
66618     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( pExecutableInfo ), pStatisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( pStatistics ) ) );
66619   }
66620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66621   template<typename Allocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const66622   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const
66623   {
66624     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics;
66625     uint32_t statisticCount;
66626     Result result;
66627     do
66628     {
66629       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
66630       if ( ( result == Result::eSuccess ) && statisticCount )
66631       {
66632         statistics.resize( statisticCount );
66633         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
66634       }
66635     } while ( result == Result::eIncomplete );
66636     if ( result == Result::eSuccess )
66637     {
66638       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
66639       statistics.resize( statisticCount );
66640     }
66641     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
66642   }
66643   template<typename Allocator, typename Dispatch>
getPipelineExecutableStatisticsKHR(const PipelineExecutableInfoKHR & executableInfo,Allocator const & vectorAllocator,Dispatch const & d) const66644   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PipelineExecutableStatisticKHR,Allocator>>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
66645   {
66646     std::vector<PipelineExecutableStatisticKHR,Allocator> statistics( vectorAllocator );
66647     uint32_t statisticCount;
66648     Result result;
66649     do
66650     {
66651       result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, nullptr ) );
66652       if ( ( result == Result::eSuccess ) && statisticCount )
66653       {
66654         statistics.resize( statisticCount );
66655         result = static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR*>( &executableInfo ), &statisticCount, reinterpret_cast<VkPipelineExecutableStatisticKHR*>( statistics.data() ) ) );
66656       }
66657     } while ( result == Result::eIncomplete );
66658     if ( result == Result::eSuccess )
66659     {
66660       VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
66661       statistics.resize( statisticCount );
66662     }
66663     return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" );
66664   }
66665 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66666 
66667   template<typename Dispatch>
getQueryPoolResults(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,vk::DeviceSize stride,vk::QueryResultFlags flags,Dispatch const & d) const66668   VULKAN_HPP_INLINE Result Device::getQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d) const
66669   {
66670     return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
66671   }
66672 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66673   template<typename T, typename Dispatch>
getQueryPoolResults(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,ArrayProxy<T> data,vk::DeviceSize stride,vk::QueryResultFlags flags,Dispatch const & d) const66674   VULKAN_HPP_INLINE Result Device::getQueryPoolResults( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, vk::DeviceSize stride, vk::QueryResultFlags flags, Dispatch const &d ) const
66675   {
66676     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 ) ) );
66677     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
66678   }
66679 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66680 
66681   template<typename Dispatch>
getRayTracingShaderGroupHandlesNV(vk::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const66682   VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( vk::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d) const
66683   {
66684     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
66685   }
66686 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66687   template<typename T, typename Dispatch>
getRayTracingShaderGroupHandlesNV(vk::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,ArrayProxy<T> data,Dispatch const & d) const66688   VULKAN_HPP_INLINE ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesNV( vk::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const
66689   {
66690     Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
66691     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
66692   }
66693 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66694 
66695   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(vk::SwapchainKHR swapchain,vk::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const66696   VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( vk::SwapchainKHR swapchain, vk::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d) const
66697   {
66698     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( pDisplayTimingProperties ) ) );
66699   }
66700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66701   template<typename Dispatch>
getRefreshCycleDurationGOOGLE(vk::SwapchainKHR swapchain,Dispatch const & d) const66702   VULKAN_HPP_INLINE ResultValueType<vk::RefreshCycleDurationGOOGLE>::type Device::getRefreshCycleDurationGOOGLE( vk::SwapchainKHR swapchain, Dispatch const &d ) const
66703   {
66704     vk::RefreshCycleDurationGOOGLE displayTimingProperties;
66705     Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( &displayTimingProperties ) ) );
66706     return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getRefreshCycleDurationGOOGLE" );
66707   }
66708 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66709 
66710   template<typename Dispatch>
getRenderAreaGranularity(vk::RenderPass renderPass,vk::Extent2D * pGranularity,Dispatch const & d) const66711   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( vk::RenderPass renderPass, vk::Extent2D* pGranularity, Dispatch const &d) const
66712   {
66713     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( pGranularity ) );
66714   }
66715 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66716   template<typename Dispatch>
getRenderAreaGranularity(vk::RenderPass renderPass,Dispatch const & d) const66717   VULKAN_HPP_INLINE vk::Extent2D Device::getRenderAreaGranularity( vk::RenderPass renderPass, Dispatch const &d ) const
66718   {
66719     vk::Extent2D granularity;
66720     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( &granularity ) );
66721     return granularity;
66722   }
66723 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66724 
66725   template<typename Dispatch>
getSemaphoreFdKHR(const vk::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const66726   VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const vk::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
66727   {
66728     return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
66729   }
66730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66731   template<typename Dispatch>
getSemaphoreFdKHR(const SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const66732   VULKAN_HPP_INLINE ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
66733   {
66734     int fd;
66735     Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( &getFdInfo ), &fd ) );
66736     return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreFdKHR" );
66737   }
66738 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66739 
66740 #ifdef VK_USE_PLATFORM_WIN32_KHR
66741   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const vk::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const66742   VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const vk::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
66743   {
66744     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
66745   }
66746 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66747   template<typename Dispatch>
getSemaphoreWin32HandleKHR(const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const66748   VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
66749   {
66750     HANDLE handle;
66751     Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
66752     return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreWin32HandleKHR" );
66753   }
66754 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66755 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66756 
66757   template<typename Dispatch>
getShaderInfoAMD(vk::Pipeline pipeline,vk::ShaderStageFlagBits shaderStage,vk::ShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo,Dispatch const & d) const66758   VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d) const
66759   {
66760     return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
66761   }
66762 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66763   template<typename Allocator, typename Dispatch>
getShaderInfoAMD(vk::Pipeline pipeline,vk::ShaderStageFlagBits shaderStage,vk::ShaderInfoTypeAMD infoType,Dispatch const & d) const66764   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, Dispatch const &d ) const
66765   {
66766     std::vector<uint8_t,Allocator> info;
66767     size_t infoSize;
66768     Result result;
66769     do
66770     {
66771       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
66772       if ( ( result == Result::eSuccess ) && infoSize )
66773       {
66774         info.resize( infoSize );
66775         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() ) ) );
66776       }
66777     } while ( result == Result::eIncomplete );
66778     if ( result == Result::eSuccess )
66779     {
66780       VULKAN_HPP_ASSERT( infoSize <= info.size() );
66781       info.resize( infoSize );
66782     }
66783     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
66784   }
66785   template<typename Allocator, typename Dispatch>
getShaderInfoAMD(vk::Pipeline pipeline,vk::ShaderStageFlagBits shaderStage,vk::ShaderInfoTypeAMD infoType,Allocator const & vectorAllocator,Dispatch const & d) const66786   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( vk::Pipeline pipeline, vk::ShaderStageFlagBits shaderStage, vk::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const
66787   {
66788     std::vector<uint8_t,Allocator> info( vectorAllocator );
66789     size_t infoSize;
66790     Result result;
66791     do
66792     {
66793       result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
66794       if ( ( result == Result::eSuccess ) && infoSize )
66795       {
66796         info.resize( infoSize );
66797         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() ) ) );
66798       }
66799     } while ( result == Result::eIncomplete );
66800     if ( result == Result::eSuccess )
66801     {
66802       VULKAN_HPP_ASSERT( infoSize <= info.size() );
66803       info.resize( infoSize );
66804     }
66805     return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
66806   }
66807 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66808 
66809   template<typename Dispatch>
getSwapchainCounterEXT(vk::SwapchainKHR swapchain,vk::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const66810   VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( vk::SwapchainKHR swapchain, vk::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d) const
66811   {
66812     return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
66813   }
66814 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66815   template<typename Dispatch>
getSwapchainCounterEXT(vk::SwapchainKHR swapchain,vk::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const66816   VULKAN_HPP_INLINE ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT( vk::SwapchainKHR swapchain, vk::SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const
66817   {
66818     uint64_t counterValue;
66819     Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
66820     return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" );
66821   }
66822 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66823 
66824   template<typename Dispatch>
getSwapchainImagesKHR(vk::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,vk::Image * pSwapchainImages,Dispatch const & d) const66825   VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( vk::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, vk::Image* pSwapchainImages, Dispatch const &d) const
66826   {
66827     return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage*>( pSwapchainImages ) ) );
66828   }
66829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66830   template<typename Allocator, typename Dispatch>
getSwapchainImagesKHR(vk::SwapchainKHR swapchain,Dispatch const & d) const66831   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( vk::SwapchainKHR swapchain, Dispatch const &d ) const
66832   {
66833     std::vector<Image,Allocator> swapchainImages;
66834     uint32_t swapchainImageCount;
66835     Result result;
66836     do
66837     {
66838       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
66839       if ( ( result == Result::eSuccess ) && swapchainImageCount )
66840       {
66841         swapchainImages.resize( swapchainImageCount );
66842         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
66843       }
66844     } while ( result == Result::eIncomplete );
66845     if ( result == Result::eSuccess )
66846     {
66847       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
66848       swapchainImages.resize( swapchainImageCount );
66849     }
66850     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
66851   }
66852   template<typename Allocator, typename Dispatch>
getSwapchainImagesKHR(vk::SwapchainKHR swapchain,Allocator const & vectorAllocator,Dispatch const & d) const66853   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( vk::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
66854   {
66855     std::vector<Image,Allocator> swapchainImages( vectorAllocator );
66856     uint32_t swapchainImageCount;
66857     Result result;
66858     do
66859     {
66860       result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
66861       if ( ( result == Result::eSuccess ) && swapchainImageCount )
66862       {
66863         swapchainImages.resize( swapchainImageCount );
66864         result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
66865       }
66866     } while ( result == Result::eIncomplete );
66867     if ( result == Result::eSuccess )
66868     {
66869       VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
66870       swapchainImages.resize( swapchainImageCount );
66871     }
66872     return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
66873   }
66874 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66875 
66876 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
66877   template<typename Dispatch>
getSwapchainStatusKHR(vk::SwapchainKHR swapchain,Dispatch const & d) const66878   VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( vk::SwapchainKHR swapchain, Dispatch const &d) const
66879   {
66880     return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
66881   }
66882 #else
66883   template<typename Dispatch>
getSwapchainStatusKHR(vk::SwapchainKHR swapchain,Dispatch const & d) const66884   VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( vk::SwapchainKHR swapchain, Dispatch const &d ) const
66885   {
66886     Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
66887     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainStatusKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
66888   }
66889 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66890 
66891   template<typename Dispatch>
getValidationCacheDataEXT(vk::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const66892   VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d) const
66893   {
66894     return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
66895   }
66896 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66897   template<typename Allocator, typename Dispatch>
getValidationCacheDataEXT(vk::ValidationCacheEXT validationCache,Dispatch const & d) const66898   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, Dispatch const &d ) const
66899   {
66900     std::vector<uint8_t,Allocator> data;
66901     size_t dataSize;
66902     Result result;
66903     do
66904     {
66905       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
66906       if ( ( result == Result::eSuccess ) && dataSize )
66907       {
66908         data.resize( dataSize );
66909         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
66910       }
66911     } while ( result == Result::eIncomplete );
66912     if ( result == Result::eSuccess )
66913     {
66914       VULKAN_HPP_ASSERT( dataSize <= data.size() );
66915       data.resize( dataSize );
66916     }
66917     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
66918   }
66919   template<typename Allocator, typename Dispatch>
getValidationCacheDataEXT(vk::ValidationCacheEXT validationCache,Allocator const & vectorAllocator,Dispatch const & d) const66920   VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( vk::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const
66921   {
66922     std::vector<uint8_t,Allocator> data( vectorAllocator );
66923     size_t dataSize;
66924     Result result;
66925     do
66926     {
66927       result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
66928       if ( ( result == Result::eSuccess ) && dataSize )
66929       {
66930         data.resize( dataSize );
66931         result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
66932       }
66933     } while ( result == Result::eIncomplete );
66934     if ( result == Result::eSuccess )
66935     {
66936       VULKAN_HPP_ASSERT( dataSize <= data.size() );
66937       data.resize( dataSize );
66938     }
66939     return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
66940   }
66941 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66942 
66943   template<typename Dispatch>
importFenceFdKHR(const vk::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const66944   VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const vk::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d) const
66945   {
66946     return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( pImportFenceFdInfo ) ) );
66947   }
66948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66949   template<typename Dispatch>
importFenceFdKHR(const ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const66950   VULKAN_HPP_INLINE ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d ) const
66951   {
66952     Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( &importFenceFdInfo ) ) );
66953     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceFdKHR" );
66954   }
66955 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66956 
66957 #ifdef VK_USE_PLATFORM_WIN32_KHR
66958   template<typename Dispatch>
importFenceWin32HandleKHR(const vk::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const66959   VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const vk::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d) const
66960   {
66961     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( pImportFenceWin32HandleInfo ) ) );
66962   }
66963 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66964   template<typename Dispatch>
importFenceWin32HandleKHR(const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const66965   VULKAN_HPP_INLINE ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d ) const
66966   {
66967     Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( &importFenceWin32HandleInfo ) ) );
66968     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceWin32HandleKHR" );
66969   }
66970 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66971 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
66972 
66973   template<typename Dispatch>
importSemaphoreFdKHR(const vk::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const66974   VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const vk::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d) const
66975   {
66976     return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( pImportSemaphoreFdInfo ) ) );
66977   }
66978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66979   template<typename Dispatch>
importSemaphoreFdKHR(const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const66980   VULKAN_HPP_INLINE ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d ) const
66981   {
66982     Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( &importSemaphoreFdInfo ) ) );
66983     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreFdKHR" );
66984   }
66985 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
66986 
66987 #ifdef VK_USE_PLATFORM_WIN32_KHR
66988   template<typename Dispatch>
importSemaphoreWin32HandleKHR(const vk::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const66989   VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const vk::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d) const
66990   {
66991     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( pImportSemaphoreWin32HandleInfo ) ) );
66992   }
66993 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
66994   template<typename Dispatch>
importSemaphoreWin32HandleKHR(const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const66995   VULKAN_HPP_INLINE ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d ) const
66996   {
66997     Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( &importSemaphoreWin32HandleInfo ) ) );
66998     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreWin32HandleKHR" );
66999   }
67000 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67001 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
67002 
67003   template<typename Dispatch>
initializePerformanceApiINTEL(const vk::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const67004   VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const vk::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d) const
67005   {
67006     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( pInitializeInfo ) ) );
67007   }
67008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67009   template<typename Dispatch>
initializePerformanceApiINTEL(const InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const67010   VULKAN_HPP_INLINE ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d ) const
67011   {
67012     Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( &initializeInfo ) ) );
67013     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::initializePerformanceApiINTEL" );
67014   }
67015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67016 
67017   template<typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const vk::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const67018   VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const vk::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const
67019   {
67020     return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
67021   }
67022 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67023   template<typename Dispatch>
invalidateMappedMemoryRanges(ArrayProxy<const vk::MappedMemoryRange> memoryRanges,Dispatch const & d) const67024   VULKAN_HPP_INLINE ResultValueType<void>::type Device::invalidateMappedMemoryRanges( ArrayProxy<const vk::MappedMemoryRange> memoryRanges, Dispatch const &d ) const
67025   {
67026     Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
67027     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::invalidateMappedMemoryRanges" );
67028   }
67029 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67030 
67031   template<typename Dispatch>
mapMemory(vk::DeviceMemory memory,vk::DeviceSize offset,vk::DeviceSize size,vk::MemoryMapFlags flags,void ** ppData,Dispatch const & d) const67032   VULKAN_HPP_INLINE Result Device::mapMemory( vk::DeviceMemory memory, vk::DeviceSize offset, vk::DeviceSize size, vk::MemoryMapFlags flags, void** ppData, Dispatch const &d) const
67033   {
67034     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 ) );
67035   }
67036 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67037   template<typename Dispatch>
mapMemory(vk::DeviceMemory memory,vk::DeviceSize offset,vk::DeviceSize size,vk::MemoryMapFlags flags,Dispatch const & d) const67038   VULKAN_HPP_INLINE ResultValueType<void*>::type Device::mapMemory( vk::DeviceMemory memory, vk::DeviceSize offset, vk::DeviceSize size, vk::MemoryMapFlags flags, Dispatch const &d ) const
67039   {
67040     void* pData;
67041     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 ) );
67042     return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING"::Device::mapMemory" );
67043   }
67044 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67045 
67046   template<typename Dispatch>
mergePipelineCaches(vk::PipelineCache dstCache,uint32_t srcCacheCount,const vk::PipelineCache * pSrcCaches,Dispatch const & d) const67047   VULKAN_HPP_INLINE Result Device::mergePipelineCaches( vk::PipelineCache dstCache, uint32_t srcCacheCount, const vk::PipelineCache* pSrcCaches, Dispatch const &d) const
67048   {
67049     return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache*>( pSrcCaches ) ) );
67050   }
67051 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67052   template<typename Dispatch>
mergePipelineCaches(vk::PipelineCache dstCache,ArrayProxy<const vk::PipelineCache> srcCaches,Dispatch const & d) const67053   VULKAN_HPP_INLINE ResultValueType<void>::type Device::mergePipelineCaches( vk::PipelineCache dstCache, ArrayProxy<const vk::PipelineCache> srcCaches, Dispatch const &d ) const
67054   {
67055     Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size() , reinterpret_cast<const VkPipelineCache*>( srcCaches.data() ) ) );
67056     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergePipelineCaches" );
67057   }
67058 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67059 
67060   template<typename Dispatch>
mergeValidationCachesEXT(vk::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const vk::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const67061   VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( vk::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const vk::ValidationCacheEXT* pSrcCaches, Dispatch const &d) const
67062   {
67063     return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT*>( pSrcCaches ) ) );
67064   }
67065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67066   template<typename Dispatch>
mergeValidationCachesEXT(vk::ValidationCacheEXT dstCache,ArrayProxy<const vk::ValidationCacheEXT> srcCaches,Dispatch const & d) const67067   VULKAN_HPP_INLINE ResultValueType<void>::type Device::mergeValidationCachesEXT( vk::ValidationCacheEXT dstCache, ArrayProxy<const vk::ValidationCacheEXT> srcCaches, Dispatch const &d ) const
67068   {
67069     Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size() , reinterpret_cast<const VkValidationCacheEXT*>( srcCaches.data() ) ) );
67070     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergeValidationCachesEXT" );
67071   }
67072 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67073 
67074   template<typename Dispatch>
registerEventEXT(const vk::DeviceEventInfoEXT * pDeviceEventInfo,const vk::AllocationCallbacks * pAllocator,vk::Fence * pFence,Dispatch const & d) const67075   VULKAN_HPP_INLINE Result Device::registerEventEXT( const vk::DeviceEventInfoEXT* pDeviceEventInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d) const
67076   {
67077     return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
67078   }
67079 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67080   template<typename Dispatch>
registerEventEXT(const DeviceEventInfoEXT & deviceEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67081   VULKAN_HPP_INLINE ResultValueType<vk::Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67082   {
67083     vk::Fence fence;
67084     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 ) ) );
67085     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXT" );
67086   }
67087 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67088 
67089   template<typename Dispatch>
registerDisplayEventEXT(vk::DisplayKHR display,const vk::DisplayEventInfoEXT * pDisplayEventInfo,const vk::AllocationCallbacks * pAllocator,vk::Fence * pFence,Dispatch const & d) const67090   VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( vk::DisplayKHR display, const vk::DisplayEventInfoEXT* pDisplayEventInfo, const vk::AllocationCallbacks* pAllocator, vk::Fence* pFence, Dispatch const &d) const
67091   {
67092     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 ) ) );
67093   }
67094 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67095   template<typename Dispatch>
registerDisplayEventEXT(vk::DisplayKHR display,const DisplayEventInfoEXT & displayEventInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67096   VULKAN_HPP_INLINE ResultValueType<vk::Fence>::type Device::registerDisplayEventEXT( vk::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67097   {
67098     vk::Fence fence;
67099     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 ) ) );
67100     return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXT" );
67101   }
67102 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67103 
67104   template<typename Dispatch>
registerObjectsNVX(vk::ObjectTableNVX objectTable,uint32_t objectCount,const vk::ObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices,Dispatch const & d) const67105   VULKAN_HPP_INLINE Result Device::registerObjectsNVX( vk::ObjectTableNVX objectTable, uint32_t objectCount, const vk::ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d) const
67106   {
67107     return static_cast<Result>( d.vkRegisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectCount, reinterpret_cast<const VkObjectTableEntryNVX* const*>( ppObjectTableEntries ), pObjectIndices ) );
67108   }
67109 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67110   template<typename Dispatch>
registerObjectsNVX(vk::ObjectTableNVX objectTable,ArrayProxy<const vk::ObjectTableEntryNVX * const> pObjectTableEntries,ArrayProxy<const uint32_t> objectIndices,Dispatch const & d) const67111   VULKAN_HPP_INLINE ResultValueType<void>::type Device::registerObjectsNVX( vk::ObjectTableNVX objectTable, ArrayProxy<const vk::ObjectTableEntryNVX* const> pObjectTableEntries, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d ) const
67112   {
67113 #ifdef VULKAN_HPP_NO_EXCEPTIONS
67114     VULKAN_HPP_ASSERT( pObjectTableEntries.size() == objectIndices.size() );
67115 #else
67116     if ( pObjectTableEntries.size() != objectIndices.size() )
67117     {
67118       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::registerObjectsNVX: pObjectTableEntries.size() != objectIndices.size()" );
67119     }
67120 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
67121     Result result = static_cast<Result>( d.vkRegisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), pObjectTableEntries.size() , reinterpret_cast<const VkObjectTableEntryNVX* const*>( pObjectTableEntries.data() ), objectIndices.data() ) );
67122     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::registerObjectsNVX" );
67123   }
67124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67125 
67126 #ifdef VK_USE_PLATFORM_WIN32_KHR
67127 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67128   template<typename Dispatch>
releaseFullScreenExclusiveModeEXT(vk::SwapchainKHR swapchain,Dispatch const & d) const67129   VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d) const
67130   {
67131     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
67132   }
67133 #else
67134   template<typename Dispatch>
releaseFullScreenExclusiveModeEXT(vk::SwapchainKHR swapchain,Dispatch const & d) const67135   VULKAN_HPP_INLINE ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( vk::SwapchainKHR swapchain, Dispatch const &d ) const
67136   {
67137     Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
67138     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releaseFullScreenExclusiveModeEXT" );
67139   }
67140 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67141 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
67142 
67143 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67144   template<typename Dispatch>
releasePerformanceConfigurationINTEL(vk::PerformanceConfigurationINTEL configuration,Dispatch const & d) const67145   VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d) const
67146   {
67147     return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
67148   }
67149 #else
67150   template<typename Dispatch>
releasePerformanceConfigurationINTEL(vk::PerformanceConfigurationINTEL configuration,Dispatch const & d) const67151   VULKAN_HPP_INLINE ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
67152   {
67153     Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
67154     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releasePerformanceConfigurationINTEL" );
67155   }
67156 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67157 
67158 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67159   template<typename Dispatch>
resetCommandPool(vk::CommandPool commandPool,vk::CommandPoolResetFlags flags,Dispatch const & d) const67160   VULKAN_HPP_INLINE Result Device::resetCommandPool( vk::CommandPool commandPool, vk::CommandPoolResetFlags flags, Dispatch const &d) const
67161   {
67162     return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
67163   }
67164 #else
67165   template<typename Dispatch>
resetCommandPool(vk::CommandPool commandPool,vk::CommandPoolResetFlags flags,Dispatch const & d) const67166   VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetCommandPool( vk::CommandPool commandPool, vk::CommandPoolResetFlags flags, Dispatch const &d ) const
67167   {
67168     Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
67169     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetCommandPool" );
67170   }
67171 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67172 
67173 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67174   template<typename Dispatch>
resetDescriptorPool(vk::DescriptorPool descriptorPool,vk::DescriptorPoolResetFlags flags,Dispatch const & d) const67175   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( vk::DescriptorPool descriptorPool, vk::DescriptorPoolResetFlags flags, Dispatch const &d) const
67176   {
67177     return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
67178   }
67179 #else
67180   template<typename Dispatch>
resetDescriptorPool(vk::DescriptorPool descriptorPool,vk::DescriptorPoolResetFlags flags,Dispatch const & d) const67181   VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetDescriptorPool( vk::DescriptorPool descriptorPool, vk::DescriptorPoolResetFlags flags, Dispatch const &d ) const
67182   {
67183     Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
67184     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetDescriptorPool" );
67185   }
67186 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67187 
67188 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67189   template<typename Dispatch>
resetEvent(vk::Event event,Dispatch const & d) const67190   VULKAN_HPP_INLINE Result Device::resetEvent( vk::Event event, Dispatch const &d) const
67191   {
67192     return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
67193   }
67194 #else
67195   template<typename Dispatch>
resetEvent(vk::Event event,Dispatch const & d) const67196   VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetEvent( vk::Event event, Dispatch const &d ) const
67197   {
67198     Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
67199     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetEvent" );
67200   }
67201 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67202 
67203   template<typename Dispatch>
resetFences(uint32_t fenceCount,const vk::Fence * pFences,Dispatch const & d) const67204   VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const vk::Fence* pFences, Dispatch const &d) const
67205   {
67206     return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ) ) );
67207   }
67208 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67209   template<typename Dispatch>
resetFences(ArrayProxy<const vk::Fence> fences,Dispatch const & d) const67210   VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetFences( ArrayProxy<const vk::Fence> fences, Dispatch const &d ) const
67211   {
67212     Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ) ) );
67213     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetFences" );
67214   }
67215 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67216 
67217 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67218   template<typename Dispatch>
resetQueryPoolEXT(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const67219   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const
67220   {
67221     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
67222   }
67223 #else
67224   template<typename Dispatch>
resetQueryPoolEXT(vk::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const67225   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( vk::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const
67226   {
67227     d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
67228   }
67229 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67230 
67231   template<typename Dispatch>
setDebugUtilsObjectNameEXT(const vk::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const67232   VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const vk::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d) const
67233   {
67234     return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( pNameInfo ) ) );
67235   }
67236 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67237   template<typename Dispatch>
setDebugUtilsObjectNameEXT(const DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const67238   VULKAN_HPP_INLINE ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
67239   {
67240     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( &nameInfo ) ) );
67241     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectNameEXT" );
67242   }
67243 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67244 
67245   template<typename Dispatch>
setDebugUtilsObjectTagEXT(const vk::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const67246   VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const vk::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d) const
67247   {
67248     return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( pTagInfo ) ) );
67249   }
67250 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67251   template<typename Dispatch>
setDebugUtilsObjectTagEXT(const DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const67252   VULKAN_HPP_INLINE ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
67253   {
67254     Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( &tagInfo ) ) );
67255     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectTagEXT" );
67256   }
67257 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67258 
67259 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67260   template<typename Dispatch>
setEvent(vk::Event event,Dispatch const & d) const67261   VULKAN_HPP_INLINE Result Device::setEvent( vk::Event event, Dispatch const &d) const
67262   {
67263     return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
67264   }
67265 #else
67266   template<typename Dispatch>
setEvent(vk::Event event,Dispatch const & d) const67267   VULKAN_HPP_INLINE ResultValueType<void>::type Device::setEvent( vk::Event event, Dispatch const &d ) const
67268   {
67269     Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
67270     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setEvent" );
67271   }
67272 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67273 
67274   template<typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const vk::SwapchainKHR * pSwapchains,const vk::HdrMetadataEXT * pMetadata,Dispatch const & d) const67275   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const vk::SwapchainKHR* pSwapchains, const vk::HdrMetadataEXT* pMetadata, Dispatch const &d) const
67276   {
67277     d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR*>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT*>( pMetadata ) );
67278   }
67279 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67280   template<typename Dispatch>
setHdrMetadataEXT(ArrayProxy<const vk::SwapchainKHR> swapchains,ArrayProxy<const vk::HdrMetadataEXT> metadata,Dispatch const & d) const67281   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy<const vk::SwapchainKHR> swapchains, ArrayProxy<const vk::HdrMetadataEXT> metadata, Dispatch const &d ) const
67282   {
67283 #ifdef VULKAN_HPP_NO_EXCEPTIONS
67284     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
67285 #else
67286     if ( swapchains.size() != metadata.size() )
67287     {
67288       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
67289     }
67290 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
67291     d.vkSetHdrMetadataEXT( m_device, swapchains.size() , reinterpret_cast<const VkSwapchainKHR*>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT*>( metadata.data() ) );
67292   }
67293 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67294 
67295 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67296   template<typename Dispatch>
setLocalDimmingAMD(vk::SwapchainKHR swapChain,vk::Bool32 localDimmingEnable,Dispatch const & d) const67297   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( vk::SwapchainKHR swapChain, vk::Bool32 localDimmingEnable, Dispatch const &d) const
67298   {
67299     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
67300   }
67301 #else
67302   template<typename Dispatch>
setLocalDimmingAMD(vk::SwapchainKHR swapChain,vk::Bool32 localDimmingEnable,Dispatch const & d) const67303   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( vk::SwapchainKHR swapChain, vk::Bool32 localDimmingEnable, Dispatch const &d ) const
67304   {
67305     d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
67306   }
67307 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67308 
67309 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67310   template<typename Dispatch>
trimCommandPool(vk::CommandPool commandPool,vk::CommandPoolTrimFlags flags,Dispatch const & d) const67311   VULKAN_HPP_INLINE void Device::trimCommandPool( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags, Dispatch const &d) const
67312   {
67313     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
67314   }
67315 #else
67316   template<typename Dispatch>
trimCommandPool(vk::CommandPool commandPool,vk::CommandPoolTrimFlags flags,Dispatch const & d) const67317   VULKAN_HPP_INLINE void Device::trimCommandPool( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags, Dispatch const &d ) const
67318   {
67319     d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
67320   }
67321 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67322 
67323 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67324   template<typename Dispatch>
trimCommandPoolKHR(vk::CommandPool commandPool,vk::CommandPoolTrimFlags flags,Dispatch const & d) const67325   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags, Dispatch const &d) const
67326   {
67327     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
67328   }
67329 #else
67330   template<typename Dispatch>
trimCommandPoolKHR(vk::CommandPool commandPool,vk::CommandPoolTrimFlags flags,Dispatch const & d) const67331   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( vk::CommandPool commandPool, vk::CommandPoolTrimFlags flags, Dispatch const &d ) const
67332   {
67333     d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
67334   }
67335 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67336 
67337 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67338   template<typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const67339   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d) const
67340   {
67341     d.vkUninitializePerformanceApiINTEL( m_device );
67342   }
67343 #else
67344   template<typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const67345   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d ) const
67346   {
67347     d.vkUninitializePerformanceApiINTEL( m_device );
67348   }
67349 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67350 
67351 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67352   template<typename Dispatch>
unmapMemory(vk::DeviceMemory memory,Dispatch const & d) const67353   VULKAN_HPP_INLINE void Device::unmapMemory( vk::DeviceMemory memory, Dispatch const &d) const
67354   {
67355     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
67356   }
67357 #else
67358   template<typename Dispatch>
unmapMemory(vk::DeviceMemory memory,Dispatch const & d) const67359   VULKAN_HPP_INLINE void Device::unmapMemory( vk::DeviceMemory memory, Dispatch const &d ) const
67360   {
67361     d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
67362   }
67363 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67364 
67365   template<typename Dispatch>
unregisterObjectsNVX(vk::ObjectTableNVX objectTable,uint32_t objectCount,const vk::ObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices,Dispatch const & d) const67366   VULKAN_HPP_INLINE Result Device::unregisterObjectsNVX( vk::ObjectTableNVX objectTable, uint32_t objectCount, const vk::ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d) const
67367   {
67368     return static_cast<Result>( d.vkUnregisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectCount, reinterpret_cast<const VkObjectEntryTypeNVX*>( pObjectEntryTypes ), pObjectIndices ) );
67369   }
67370 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67371   template<typename Dispatch>
unregisterObjectsNVX(vk::ObjectTableNVX objectTable,ArrayProxy<const vk::ObjectEntryTypeNVX> objectEntryTypes,ArrayProxy<const uint32_t> objectIndices,Dispatch const & d) const67372   VULKAN_HPP_INLINE ResultValueType<void>::type Device::unregisterObjectsNVX( vk::ObjectTableNVX objectTable, ArrayProxy<const vk::ObjectEntryTypeNVX> objectEntryTypes, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d ) const
67373   {
67374 #ifdef VULKAN_HPP_NO_EXCEPTIONS
67375     VULKAN_HPP_ASSERT( objectEntryTypes.size() == objectIndices.size() );
67376 #else
67377     if ( objectEntryTypes.size() != objectIndices.size() )
67378     {
67379       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::unregisterObjectsNVX: objectEntryTypes.size() != objectIndices.size()" );
67380     }
67381 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
67382     Result result = static_cast<Result>( d.vkUnregisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectEntryTypes.size() , reinterpret_cast<const VkObjectEntryTypeNVX*>( objectEntryTypes.data() ), objectIndices.data() ) );
67383     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::unregisterObjectsNVX" );
67384   }
67385 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67386 
67387 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67388   template<typename Dispatch>
updateDescriptorSetWithTemplate(vk::DescriptorSet descriptorSet,vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const67389   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const
67390   {
67391     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
67392   }
67393 #else
67394   template<typename Dispatch>
updateDescriptorSetWithTemplate(vk::DescriptorSet descriptorSet,vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const67395   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const
67396   {
67397     d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
67398   }
67399 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67400 
67401 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
67402   template<typename Dispatch>
updateDescriptorSetWithTemplateKHR(vk::DescriptorSet descriptorSet,vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const67403   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const
67404   {
67405     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
67406   }
67407 #else
67408   template<typename Dispatch>
updateDescriptorSetWithTemplateKHR(vk::DescriptorSet descriptorSet,vk::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const67409   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( vk::DescriptorSet descriptorSet, vk::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const
67410   {
67411     d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
67412   }
67413 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67414 
67415   template<typename Dispatch>
updateDescriptorSets(uint32_t descriptorWriteCount,const vk::WriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const vk::CopyDescriptorSet * pDescriptorCopies,Dispatch const & d) const67416   VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const vk::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const vk::CopyDescriptorSet* pDescriptorCopies, Dispatch const &d) const
67417   {
67418     d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet*>( pDescriptorCopies ) );
67419   }
67420 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67421   template<typename Dispatch>
updateDescriptorSets(ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites,ArrayProxy<const vk::CopyDescriptorSet> descriptorCopies,Dispatch const & d) const67422   VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy<const vk::WriteDescriptorSet> descriptorWrites, ArrayProxy<const vk::CopyDescriptorSet> descriptorCopies, Dispatch const &d ) const
67423   {
67424     d.vkUpdateDescriptorSets( m_device, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ), descriptorCopies.size() , reinterpret_cast<const VkCopyDescriptorSet*>( descriptorCopies.data() ) );
67425   }
67426 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67427 
67428   template<typename Dispatch>
waitForFences(uint32_t fenceCount,const vk::Fence * pFences,vk::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const67429   VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const vk::Fence* pFences, vk::Bool32 waitAll, uint64_t timeout, Dispatch const &d) const
67430   {
67431     return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
67432   }
67433 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67434   template<typename Dispatch>
waitForFences(ArrayProxy<const vk::Fence> fences,vk::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const67435   VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy<const vk::Fence> fences, vk::Bool32 waitAll, uint64_t timeout, Dispatch const &d ) const
67436   {
67437     Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
67438     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitForFences", { Result::eSuccess, Result::eTimeout } );
67439   }
67440 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67441 
67442 #ifdef VK_USE_PLATFORM_ANDROID_KHR
67443   template<typename Dispatch>
createAndroidSurfaceKHR(const vk::AndroidSurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67444   VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const vk::AndroidSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67445   {
67446     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67447   }
67448 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67449   template<typename Dispatch>
createAndroidSurfaceKHR(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67450   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67451   {
67452     vk::SurfaceKHR surface;
67453     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 ) ) );
67454     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHR" );
67455   }
67456 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67457   template<typename Dispatch>
createAndroidSurfaceKHRUnique(const AndroidSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67458   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67459   {
67460     vk::SurfaceKHR surface;
67461     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 ) ) );
67462 
67463     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67464     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter );
67465   }
67466 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67467 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67468 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
67469 
67470   template<typename Dispatch>
createDebugReportCallbackEXT(const vk::DebugReportCallbackCreateInfoEXT * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DebugReportCallbackEXT * pCallback,Dispatch const & d) const67471   VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const vk::DebugReportCallbackCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DebugReportCallbackEXT* pCallback, Dispatch const &d) const
67472   {
67473     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugReportCallbackEXT*>( pCallback ) ) );
67474   }
67475 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67476   template<typename Dispatch>
createDebugReportCallbackEXT(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67477   VULKAN_HPP_INLINE ResultValueType<vk::DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67478   {
67479     vk::DebugReportCallbackEXT callback;
67480     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 ) ) );
67481     return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXT" );
67482   }
67483 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67484   template<typename Dispatch>
createDebugReportCallbackEXTUnique(const DebugReportCallbackCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67485   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67486   {
67487     vk::DebugReportCallbackEXT callback;
67488     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 ) ) );
67489 
67490     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67491     return createResultValue<DebugReportCallbackEXT,Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter );
67492   }
67493 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67495 
67496   template<typename Dispatch>
createDebugUtilsMessengerEXT(const vk::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const67497   VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const vk::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DebugUtilsMessengerEXT* pMessenger, Dispatch const &d) const
67498   {
67499     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( pMessenger ) ) );
67500   }
67501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67502   template<typename Dispatch>
createDebugUtilsMessengerEXT(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67503   VULKAN_HPP_INLINE ResultValueType<vk::DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67504   {
67505     vk::DebugUtilsMessengerEXT messenger;
67506     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 ) ) );
67507     return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXT" );
67508   }
67509 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67510   template<typename Dispatch>
createDebugUtilsMessengerEXTUnique(const DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67511   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67512   {
67513     vk::DebugUtilsMessengerEXT messenger;
67514     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 ) ) );
67515 
67516     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67517     return createResultValue<DebugUtilsMessengerEXT,Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter );
67518   }
67519 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67520 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67521 
67522   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const vk::DisplaySurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67523   VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const vk::DisplaySurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67524   {
67525     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67526   }
67527 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67528   template<typename Dispatch>
createDisplayPlaneSurfaceKHR(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67529   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67530   {
67531     vk::SurfaceKHR surface;
67532     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 ) ) );
67533     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHR" );
67534   }
67535 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67536   template<typename Dispatch>
createDisplayPlaneSurfaceKHRUnique(const DisplaySurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67537   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67538   {
67539     vk::SurfaceKHR surface;
67540     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 ) ) );
67541 
67542     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67543     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
67544   }
67545 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67547 
67548   template<typename Dispatch>
createHeadlessSurfaceEXT(const vk::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67549   VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const vk::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67550   {
67551     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67552   }
67553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67554   template<typename Dispatch>
createHeadlessSurfaceEXT(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67555   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67556   {
67557     vk::SurfaceKHR surface;
67558     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 ) ) );
67559     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXT" );
67560   }
67561 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67562   template<typename Dispatch>
createHeadlessSurfaceEXTUnique(const HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67563   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67564   {
67565     vk::SurfaceKHR surface;
67566     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 ) ) );
67567 
67568     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67569     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXTUnique", deleter );
67570   }
67571 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67572 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67573 
67574 #ifdef VK_USE_PLATFORM_IOS_MVK
67575   template<typename Dispatch>
createIOSSurfaceMVK(const vk::IOSSurfaceCreateInfoMVK * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67576   VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const vk::IOSSurfaceCreateInfoMVK* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67577   {
67578     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67579   }
67580 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67581   template<typename Dispatch>
createIOSSurfaceMVK(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67582   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67583   {
67584     vk::SurfaceKHR surface;
67585     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 ) ) );
67586     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVK" );
67587   }
67588 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67589   template<typename Dispatch>
createIOSSurfaceMVKUnique(const IOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67590   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67591   {
67592     vk::SurfaceKHR surface;
67593     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 ) ) );
67594 
67595     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67596     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter );
67597   }
67598 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67599 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67600 #endif /*VK_USE_PLATFORM_IOS_MVK*/
67601 
67602 #ifdef VK_USE_PLATFORM_FUCHSIA
67603   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const vk::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67604   VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const vk::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67605   {
67606     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67607   }
67608 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67609   template<typename Dispatch>
createImagePipeSurfaceFUCHSIA(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67610   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67611   {
67612     vk::SurfaceKHR surface;
67613     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 ) ) );
67614     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" );
67615   }
67616 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67617   template<typename Dispatch>
createImagePipeSurfaceFUCHSIAUnique(const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67618   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67619   {
67620     vk::SurfaceKHR surface;
67621     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 ) ) );
67622 
67623     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67624     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
67625   }
67626 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67627 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67628 #endif /*VK_USE_PLATFORM_FUCHSIA*/
67629 
67630 #ifdef VK_USE_PLATFORM_MACOS_MVK
67631   template<typename Dispatch>
createMacOSSurfaceMVK(const vk::MacOSSurfaceCreateInfoMVK * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67632   VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const vk::MacOSSurfaceCreateInfoMVK* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67633   {
67634     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67635   }
67636 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67637   template<typename Dispatch>
createMacOSSurfaceMVK(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67638   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67639   {
67640     vk::SurfaceKHR surface;
67641     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 ) ) );
67642     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVK" );
67643   }
67644 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67645   template<typename Dispatch>
createMacOSSurfaceMVKUnique(const MacOSSurfaceCreateInfoMVK & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67646   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67647   {
67648     vk::SurfaceKHR surface;
67649     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 ) ) );
67650 
67651     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67652     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter );
67653   }
67654 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67655 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67656 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
67657 
67658 #ifdef VK_USE_PLATFORM_METAL_EXT
67659   template<typename Dispatch>
createMetalSurfaceEXT(const vk::MetalSurfaceCreateInfoEXT * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67660   VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const vk::MetalSurfaceCreateInfoEXT* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67661   {
67662     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67663   }
67664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67665   template<typename Dispatch>
createMetalSurfaceEXT(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67666   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67667   {
67668     vk::SurfaceKHR surface;
67669     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 ) ) );
67670     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXT" );
67671   }
67672 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67673   template<typename Dispatch>
createMetalSurfaceEXTUnique(const MetalSurfaceCreateInfoEXT & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67674   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67675   {
67676     vk::SurfaceKHR surface;
67677     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 ) ) );
67678 
67679     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67680     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXTUnique", deleter );
67681   }
67682 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67683 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67684 #endif /*VK_USE_PLATFORM_METAL_EXT*/
67685 
67686 #ifdef VK_USE_PLATFORM_GGP
67687   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const vk::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67688   VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const vk::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67689   {
67690     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67691   }
67692 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67693   template<typename Dispatch>
createStreamDescriptorSurfaceGGP(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67694   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67695   {
67696     vk::SurfaceKHR surface;
67697     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 ) ) );
67698     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGP" );
67699   }
67700 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67701   template<typename Dispatch>
createStreamDescriptorSurfaceGGPUnique(const StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67702   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67703   {
67704     vk::SurfaceKHR surface;
67705     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 ) ) );
67706 
67707     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67708     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
67709   }
67710 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67711 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67712 #endif /*VK_USE_PLATFORM_GGP*/
67713 
67714 #ifdef VK_USE_PLATFORM_VI_NN
67715   template<typename Dispatch>
createViSurfaceNN(const vk::ViSurfaceCreateInfoNN * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67716   VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const vk::ViSurfaceCreateInfoNN* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67717   {
67718     return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67719   }
67720 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67721   template<typename Dispatch>
createViSurfaceNN(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67722   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67723   {
67724     vk::SurfaceKHR surface;
67725     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 ) ) );
67726     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNN" );
67727   }
67728 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67729   template<typename Dispatch>
createViSurfaceNNUnique(const ViSurfaceCreateInfoNN & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67730   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67731   {
67732     vk::SurfaceKHR surface;
67733     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 ) ) );
67734 
67735     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67736     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter );
67737   }
67738 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67739 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67740 #endif /*VK_USE_PLATFORM_VI_NN*/
67741 
67742 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
67743   template<typename Dispatch>
createWaylandSurfaceKHR(const vk::WaylandSurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67744   VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const vk::WaylandSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67745   {
67746     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67747   }
67748 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67749   template<typename Dispatch>
createWaylandSurfaceKHR(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67750   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67751   {
67752     vk::SurfaceKHR surface;
67753     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 ) ) );
67754     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHR" );
67755   }
67756 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67757   template<typename Dispatch>
createWaylandSurfaceKHRUnique(const WaylandSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67758   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67759   {
67760     vk::SurfaceKHR surface;
67761     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 ) ) );
67762 
67763     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67764     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter );
67765   }
67766 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67767 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67768 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
67769 
67770 #ifdef VK_USE_PLATFORM_WIN32_KHR
67771   template<typename Dispatch>
createWin32SurfaceKHR(const vk::Win32SurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67772   VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const vk::Win32SurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67773   {
67774     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67775   }
67776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67777   template<typename Dispatch>
createWin32SurfaceKHR(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67778   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67779   {
67780     vk::SurfaceKHR surface;
67781     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 ) ) );
67782     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHR" );
67783   }
67784 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67785   template<typename Dispatch>
createWin32SurfaceKHRUnique(const Win32SurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67786   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67787   {
67788     vk::SurfaceKHR surface;
67789     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 ) ) );
67790 
67791     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67792     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter );
67793   }
67794 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67795 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67796 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
67797 
67798 #ifdef VK_USE_PLATFORM_XCB_KHR
67799   template<typename Dispatch>
createXcbSurfaceKHR(const vk::XcbSurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67800   VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const vk::XcbSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67801   {
67802     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67803   }
67804 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67805   template<typename Dispatch>
createXcbSurfaceKHR(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67806   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67807   {
67808     vk::SurfaceKHR surface;
67809     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 ) ) );
67810     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHR" );
67811   }
67812 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67813   template<typename Dispatch>
createXcbSurfaceKHRUnique(const XcbSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67814   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67815   {
67816     vk::SurfaceKHR surface;
67817     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 ) ) );
67818 
67819     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67820     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter );
67821   }
67822 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67823 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67824 #endif /*VK_USE_PLATFORM_XCB_KHR*/
67825 
67826 #ifdef VK_USE_PLATFORM_XLIB_KHR
67827   template<typename Dispatch>
createXlibSurfaceKHR(const vk::XlibSurfaceCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::SurfaceKHR * pSurface,Dispatch const & d) const67828   VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const vk::XlibSurfaceCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::SurfaceKHR* pSurface, Dispatch const &d) const
67829   {
67830     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
67831   }
67832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67833   template<typename Dispatch>
createXlibSurfaceKHR(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67834   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceKHR>::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67835   {
67836     vk::SurfaceKHR surface;
67837     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 ) ) );
67838     return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHR" );
67839   }
67840 #ifndef VULKAN_HPP_NO_SMART_HANDLE
67841   template<typename Dispatch>
createXlibSurfaceKHRUnique(const XlibSurfaceCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67842   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67843   {
67844     vk::SurfaceKHR surface;
67845     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 ) ) );
67846 
67847     ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
67848     return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter );
67849   }
67850 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
67851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67852 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
67853 
67854   template<typename Dispatch>
debugReportMessageEXT(vk::DebugReportFlagsEXT flags,vk::DebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage,Dispatch const & d) const67855   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( vk::DebugReportFlagsEXT flags, vk::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const &d) const
67856   {
67857     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
67858   }
67859 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67860   template<typename Dispatch>
debugReportMessageEXT(vk::DebugReportFlagsEXT flags,vk::DebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const std::string & layerPrefix,const std::string & message,Dispatch const & d) const67861   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( vk::DebugReportFlagsEXT flags, vk::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const &d ) const
67862   {
67863 #ifdef VULKAN_HPP_NO_EXCEPTIONS
67864     VULKAN_HPP_ASSERT( layerPrefix.size() == message.size() );
67865 #else
67866     if ( layerPrefix.size() != message.size() )
67867     {
67868       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkInstance::debugReportMessageEXT: layerPrefix.size() != message.size()" );
67869     }
67870 #endif  /*VULKAN_HPP_NO_EXCEPTIONS*/
67871     d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
67872   }
67873 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67874 
67875   template<typename Dispatch>
destroyDebugReportCallbackEXT(vk::DebugReportCallbackEXT callback,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67876   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( vk::DebugReportCallbackEXT callback, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67877   {
67878     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67879   }
67880 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67881   template<typename Dispatch>
destroyDebugReportCallbackEXT(vk::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67882   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( vk::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67883   {
67884     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67885   }
67886 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67887 
67888   template<typename Dispatch>
destroy(vk::DebugReportCallbackEXT callback,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67889   VULKAN_HPP_INLINE void Instance::destroy( vk::DebugReportCallbackEXT callback, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67890   {
67891     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67892   }
67893 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67894   template<typename Dispatch>
destroy(vk::DebugReportCallbackEXT callback,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67895   VULKAN_HPP_INLINE void Instance::destroy( vk::DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67896   {
67897     d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67898   }
67899 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67900 
67901   template<typename Dispatch>
destroyDebugUtilsMessengerEXT(vk::DebugUtilsMessengerEXT messenger,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67902   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67903   {
67904     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67905   }
67906 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67907   template<typename Dispatch>
destroyDebugUtilsMessengerEXT(vk::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67908   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( vk::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67909   {
67910     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67911   }
67912 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67913 
67914   template<typename Dispatch>
destroy(vk::DebugUtilsMessengerEXT messenger,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67915   VULKAN_HPP_INLINE void Instance::destroy( vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67916   {
67917     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67918   }
67919 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67920   template<typename Dispatch>
destroy(vk::DebugUtilsMessengerEXT messenger,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67921   VULKAN_HPP_INLINE void Instance::destroy( vk::DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67922   {
67923     d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67924   }
67925 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67926 
67927   template<typename Dispatch>
destroy(const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67928   VULKAN_HPP_INLINE void Instance::destroy( const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67929   {
67930     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67931   }
67932 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67933   template<typename Dispatch>
destroy(Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67934   VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67935   {
67936     d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67937   }
67938 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67939 
67940   template<typename Dispatch>
destroySurfaceKHR(vk::SurfaceKHR surface,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67941   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( vk::SurfaceKHR surface, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67942   {
67943     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67944   }
67945 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67946   template<typename Dispatch>
destroySurfaceKHR(vk::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67947   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( vk::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67948   {
67949     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67950   }
67951 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67952 
67953   template<typename Dispatch>
destroy(vk::SurfaceKHR surface,const vk::AllocationCallbacks * pAllocator,Dispatch const & d) const67954   VULKAN_HPP_INLINE void Instance::destroy( vk::SurfaceKHR surface, const vk::AllocationCallbacks* pAllocator, Dispatch const &d) const
67955   {
67956     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
67957   }
67958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67959   template<typename Dispatch>
destroy(vk::SurfaceKHR surface,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const67960   VULKAN_HPP_INLINE void Instance::destroy( vk::SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
67961   {
67962     d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
67963   }
67964 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
67965 
67966   template<typename Dispatch>
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,vk::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const67967   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, vk::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const
67968   {
67969     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
67970   }
67971 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
67972   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Dispatch const & d) const67973   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const
67974   {
67975     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
67976     uint32_t physicalDeviceGroupCount;
67977     Result result;
67978     do
67979     {
67980       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
67981       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
67982       {
67983         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
67984         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
67985       }
67986     } while ( result == Result::eIncomplete );
67987     if ( result == Result::eSuccess )
67988     {
67989       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
67990       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
67991     }
67992     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
67993   }
67994   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroups(Allocator const & vectorAllocator,Dispatch const & d) const67995   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const
67996   {
67997     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
67998     uint32_t physicalDeviceGroupCount;
67999     Result result;
68000     do
68001     {
68002       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
68003       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
68004       {
68005         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68006         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
68007       }
68008     } while ( result == Result::eIncomplete );
68009     if ( result == Result::eSuccess )
68010     {
68011       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
68012       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68013     }
68014     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
68015   }
68016 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68017 
68018   template<typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,vk::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const68019   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, vk::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const
68020   {
68021     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
68022   }
68023 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68024   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const68025   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const
68026   {
68027     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
68028     uint32_t physicalDeviceGroupCount;
68029     Result result;
68030     do
68031     {
68032       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
68033       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
68034       {
68035         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68036         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
68037       }
68038     } while ( result == Result::eIncomplete );
68039     if ( result == Result::eSuccess )
68040     {
68041       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
68042       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68043     }
68044     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
68045   }
68046   template<typename Allocator, typename Dispatch>
enumeratePhysicalDeviceGroupsKHR(Allocator const & vectorAllocator,Dispatch const & d) const68047   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
68048   {
68049     std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
68050     uint32_t physicalDeviceGroupCount;
68051     Result result;
68052     do
68053     {
68054       result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
68055       if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
68056       {
68057         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68058         result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
68059       }
68060     } while ( result == Result::eIncomplete );
68061     if ( result == Result::eSuccess )
68062     {
68063       VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
68064       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
68065     }
68066     return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
68067   }
68068 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68069 
68070   template<typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,vk::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const68071   VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, vk::PhysicalDevice* pPhysicalDevices, Dispatch const &d) const
68072   {
68073     return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( pPhysicalDevices ) ) );
68074   }
68075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68076   template<typename Allocator, typename Dispatch>
enumeratePhysicalDevices(Dispatch const & d) const68077   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const
68078   {
68079     std::vector<PhysicalDevice,Allocator> physicalDevices;
68080     uint32_t physicalDeviceCount;
68081     Result result;
68082     do
68083     {
68084       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
68085       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
68086       {
68087         physicalDevices.resize( physicalDeviceCount );
68088         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
68089       }
68090     } while ( result == Result::eIncomplete );
68091     if ( result == Result::eSuccess )
68092     {
68093       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
68094       physicalDevices.resize( physicalDeviceCount );
68095     }
68096     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
68097   }
68098   template<typename Allocator, typename Dispatch>
enumeratePhysicalDevices(Allocator const & vectorAllocator,Dispatch const & d) const68099   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const
68100   {
68101     std::vector<PhysicalDevice,Allocator> physicalDevices( vectorAllocator );
68102     uint32_t physicalDeviceCount;
68103     Result result;
68104     do
68105     {
68106       result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
68107       if ( ( result == Result::eSuccess ) && physicalDeviceCount )
68108       {
68109         physicalDevices.resize( physicalDeviceCount );
68110         result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
68111       }
68112     } while ( result == Result::eIncomplete );
68113     if ( result == Result::eSuccess )
68114     {
68115       VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
68116       physicalDevices.resize( physicalDeviceCount );
68117     }
68118     return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
68119   }
68120 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68121 
68122   template<typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const68123   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const
68124   {
68125     return d.vkGetInstanceProcAddr( m_instance, pName );
68126   }
68127 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68128   template<typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const68129   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const
68130   {
68131     return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
68132   }
68133 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68134 
68135   template<typename Dispatch>
submitDebugUtilsMessageEXT(vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,vk::DebugUtilsMessageTypeFlagsEXT messageTypes,const vk::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const68136   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, vk::DebugUtilsMessageTypeFlagsEXT messageTypes, const vk::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d) const
68137   {
68138     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( pCallbackData ) );
68139   }
68140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68141   template<typename Dispatch>
submitDebugUtilsMessageEXT(vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,vk::DebugUtilsMessageTypeFlagsEXT messageTypes,const DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const68142   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( vk::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, vk::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d ) const
68143   {
68144     d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( &callbackData ) );
68145   }
68146 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68147 
68148 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
68149   template<typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,vk::DisplayKHR display,Dispatch const & d) const68150   VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, vk::DisplayKHR display, Dispatch const &d) const
68151   {
68152     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
68153   }
68154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68155   template<typename Dispatch>
acquireXlibDisplayEXT(vk::DisplayKHR display,Dispatch const & d) const68156   VULKAN_HPP_INLINE ResultValueType<Display>::type PhysicalDevice::acquireXlibDisplayEXT( vk::DisplayKHR display, Dispatch const &d ) const
68157   {
68158     Display dpy;
68159     Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
68160     return createResultValue( result, dpy, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::acquireXlibDisplayEXT" );
68161   }
68162 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68163 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
68164 
68165   template<typename Dispatch>
createDevice(const vk::DeviceCreateInfo * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::Device * pDevice,Dispatch const & d) const68166   VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const vk::DeviceCreateInfo* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::Device* pDevice, Dispatch const &d) const
68167   {
68168     return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDevice*>( pDevice ) ) );
68169   }
68170 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68171   template<typename Dispatch>
createDevice(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const68172   VULKAN_HPP_INLINE ResultValueType<vk::Device>::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
68173   {
68174     vk::Device device;
68175     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 ) ) );
68176     return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDevice" );
68177   }
68178 #ifndef VULKAN_HPP_NO_SMART_HANDLE
68179   template<typename Dispatch>
createDeviceUnique(const DeviceCreateInfo & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const68180   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Device,Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
68181   {
68182     vk::Device device;
68183     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 ) ) );
68184 
68185     ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
68186     return createResultValue<Device,Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter );
68187   }
68188 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
68189 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68190 
68191   template<typename Dispatch>
createDisplayModeKHR(vk::DisplayKHR display,const vk::DisplayModeCreateInfoKHR * pCreateInfo,const vk::AllocationCallbacks * pAllocator,vk::DisplayModeKHR * pMode,Dispatch const & d) const68192   VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( vk::DisplayKHR display, const vk::DisplayModeCreateInfoKHR* pCreateInfo, const vk::AllocationCallbacks* pAllocator, vk::DisplayModeKHR* pMode, Dispatch const &d) const
68193   {
68194     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 ) ) );
68195   }
68196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68197   template<typename Dispatch>
createDisplayModeKHR(vk::DisplayKHR display,const DisplayModeCreateInfoKHR & createInfo,Optional<const AllocationCallbacks> allocator,Dispatch const & d) const68198   VULKAN_HPP_INLINE ResultValueType<vk::DisplayModeKHR>::type PhysicalDevice::createDisplayModeKHR( vk::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
68199   {
68200     vk::DisplayModeKHR mode;
68201     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 ) ) );
68202     return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDisplayModeKHR" );
68203   }
68204 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68205 
68206   template<typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,vk::ExtensionProperties * pProperties,Dispatch const & d) const68207   VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, vk::ExtensionProperties* pProperties, Dispatch const &d) const
68208   {
68209     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
68210   }
68211 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68212   template<typename Allocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const68213   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d ) const
68214   {
68215     std::vector<ExtensionProperties,Allocator> properties;
68216     uint32_t propertyCount;
68217     Result result;
68218     do
68219     {
68220       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
68221       if ( ( result == Result::eSuccess ) && propertyCount )
68222       {
68223         properties.resize( propertyCount );
68224         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
68225       }
68226     } while ( result == Result::eIncomplete );
68227     if ( result == Result::eSuccess )
68228     {
68229       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68230       properties.resize( propertyCount );
68231     }
68232     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
68233   }
68234   template<typename Allocator, typename Dispatch>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Allocator const & vectorAllocator,Dispatch const & d) const68235   VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const
68236   {
68237     std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
68238     uint32_t propertyCount;
68239     Result result;
68240     do
68241     {
68242       result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
68243       if ( ( result == Result::eSuccess ) && propertyCount )
68244       {
68245         properties.resize( propertyCount );
68246         result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
68247       }
68248     } while ( result == Result::eIncomplete );
68249     if ( result == Result::eSuccess )
68250     {
68251       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68252       properties.resize( propertyCount );
68253     }
68254     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
68255   }
68256 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68257 
68258   template<typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,vk::LayerProperties * pProperties,Dispatch const & d) const68259   VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, vk::LayerProperties* pProperties, Dispatch const &d) const
68260   {
68261     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
68262   }
68263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68264   template<typename Allocator, typename Dispatch>
enumerateDeviceLayerProperties(Dispatch const & d) const68265   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const
68266   {
68267     std::vector<LayerProperties,Allocator> properties;
68268     uint32_t propertyCount;
68269     Result result;
68270     do
68271     {
68272       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
68273       if ( ( result == Result::eSuccess ) && propertyCount )
68274       {
68275         properties.resize( propertyCount );
68276         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
68277       }
68278     } while ( result == Result::eIncomplete );
68279     if ( result == Result::eSuccess )
68280     {
68281       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68282       properties.resize( propertyCount );
68283     }
68284     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
68285   }
68286   template<typename Allocator, typename Dispatch>
enumerateDeviceLayerProperties(Allocator const & vectorAllocator,Dispatch const & d) const68287   VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
68288   {
68289     std::vector<LayerProperties,Allocator> properties( vectorAllocator );
68290     uint32_t propertyCount;
68291     Result result;
68292     do
68293     {
68294       result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
68295       if ( ( result == Result::eSuccess ) && propertyCount )
68296       {
68297         properties.resize( propertyCount );
68298         result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
68299       }
68300     } while ( result == Result::eIncomplete );
68301     if ( result == Result::eSuccess )
68302     {
68303       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68304       properties.resize( propertyCount );
68305     }
68306     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
68307   }
68308 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68309 
68310   template<typename Dispatch>
getDisplayModeProperties2KHR(vk::DisplayKHR display,uint32_t * pPropertyCount,vk::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const68311   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( vk::DisplayKHR display, uint32_t* pPropertyCount, vk::DisplayModeProperties2KHR* pProperties, Dispatch const &d) const
68312   {
68313     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( pProperties ) ) );
68314   }
68315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68316   template<typename Allocator, typename Dispatch>
getDisplayModeProperties2KHR(vk::DisplayKHR display,Dispatch const & d) const68317   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( vk::DisplayKHR display, Dispatch const &d ) const
68318   {
68319     std::vector<DisplayModeProperties2KHR,Allocator> properties;
68320     uint32_t propertyCount;
68321     Result result;
68322     do
68323     {
68324       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
68325       if ( ( result == Result::eSuccess ) && propertyCount )
68326       {
68327         properties.resize( propertyCount );
68328         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
68329       }
68330     } while ( result == Result::eIncomplete );
68331     if ( result == Result::eSuccess )
68332     {
68333       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68334       properties.resize( propertyCount );
68335     }
68336     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
68337   }
68338   template<typename Allocator, typename Dispatch>
getDisplayModeProperties2KHR(vk::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const68339   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( vk::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
68340   {
68341     std::vector<DisplayModeProperties2KHR,Allocator> properties( vectorAllocator );
68342     uint32_t propertyCount;
68343     Result result;
68344     do
68345     {
68346       result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
68347       if ( ( result == Result::eSuccess ) && propertyCount )
68348       {
68349         properties.resize( propertyCount );
68350         result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
68351       }
68352     } while ( result == Result::eIncomplete );
68353     if ( result == Result::eSuccess )
68354     {
68355       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68356       properties.resize( propertyCount );
68357     }
68358     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
68359   }
68360 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68361 
68362   template<typename Dispatch>
getDisplayModePropertiesKHR(vk::DisplayKHR display,uint32_t * pPropertyCount,vk::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const68363   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( vk::DisplayKHR display, uint32_t* pPropertyCount, vk::DisplayModePropertiesKHR* pProperties, Dispatch const &d) const
68364   {
68365     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( pProperties ) ) );
68366   }
68367 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68368   template<typename Allocator, typename Dispatch>
getDisplayModePropertiesKHR(vk::DisplayKHR display,Dispatch const & d) const68369   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( vk::DisplayKHR display, Dispatch const &d ) const
68370   {
68371     std::vector<DisplayModePropertiesKHR,Allocator> properties;
68372     uint32_t propertyCount;
68373     Result result;
68374     do
68375     {
68376       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
68377       if ( ( result == Result::eSuccess ) && propertyCount )
68378       {
68379         properties.resize( propertyCount );
68380         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
68381       }
68382     } while ( result == Result::eIncomplete );
68383     if ( result == Result::eSuccess )
68384     {
68385       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68386       properties.resize( propertyCount );
68387     }
68388     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
68389   }
68390   template<typename Allocator, typename Dispatch>
getDisplayModePropertiesKHR(vk::DisplayKHR display,Allocator const & vectorAllocator,Dispatch const & d) const68391   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( vk::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
68392   {
68393     std::vector<DisplayModePropertiesKHR,Allocator> properties( vectorAllocator );
68394     uint32_t propertyCount;
68395     Result result;
68396     do
68397     {
68398       result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
68399       if ( ( result == Result::eSuccess ) && propertyCount )
68400       {
68401         properties.resize( propertyCount );
68402         result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
68403       }
68404     } while ( result == Result::eIncomplete );
68405     if ( result == Result::eSuccess )
68406     {
68407       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68408       properties.resize( propertyCount );
68409     }
68410     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
68411   }
68412 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68413 
68414   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const vk::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,vk::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const68415   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const vk::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, vk::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d) const
68416   {
68417     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( pDisplayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( pCapabilities ) ) );
68418   }
68419 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68420   template<typename Dispatch>
getDisplayPlaneCapabilities2KHR(const DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const68421   VULKAN_HPP_INLINE ResultValueType<vk::DisplayPlaneCapabilities2KHR>::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d ) const
68422   {
68423     vk::DisplayPlaneCapabilities2KHR capabilities;
68424     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( &capabilities ) ) );
68425     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
68426   }
68427 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68428 
68429   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(vk::DisplayModeKHR mode,uint32_t planeIndex,vk::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const68430   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( vk::DisplayModeKHR mode, uint32_t planeIndex, vk::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d) const
68431   {
68432     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( pCapabilities ) ) );
68433   }
68434 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68435   template<typename Dispatch>
getDisplayPlaneCapabilitiesKHR(vk::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const68436   VULKAN_HPP_INLINE ResultValueType<vk::DisplayPlaneCapabilitiesKHR>::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( vk::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d ) const
68437   {
68438     vk::DisplayPlaneCapabilitiesKHR capabilities;
68439     Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( &capabilities ) ) );
68440     return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
68441   }
68442 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68443 
68444   template<typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,vk::DisplayKHR * pDisplays,Dispatch const & d) const68445   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, vk::DisplayKHR* pDisplays, Dispatch const &d) const
68446   {
68447     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR*>( pDisplays ) ) );
68448   }
68449 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68450   template<typename Allocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const68451   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const
68452   {
68453     std::vector<DisplayKHR,Allocator> displays;
68454     uint32_t displayCount;
68455     Result result;
68456     do
68457     {
68458       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
68459       if ( ( result == Result::eSuccess ) && displayCount )
68460       {
68461         displays.resize( displayCount );
68462         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
68463       }
68464     } while ( result == Result::eIncomplete );
68465     if ( result == Result::eSuccess )
68466     {
68467       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
68468       displays.resize( displayCount );
68469     }
68470     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
68471   }
68472   template<typename Allocator, typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Allocator const & vectorAllocator,Dispatch const & d) const68473   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const
68474   {
68475     std::vector<DisplayKHR,Allocator> displays( vectorAllocator );
68476     uint32_t displayCount;
68477     Result result;
68478     do
68479     {
68480       result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
68481       if ( ( result == Result::eSuccess ) && displayCount )
68482       {
68483         displays.resize( displayCount );
68484         result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
68485       }
68486     } while ( result == Result::eIncomplete );
68487     if ( result == Result::eSuccess )
68488     {
68489       VULKAN_HPP_ASSERT( displayCount <= displays.size() );
68490       displays.resize( displayCount );
68491     }
68492     return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
68493   }
68494 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68495 
68496   template<typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,vk::TimeDomainEXT * pTimeDomains,Dispatch const & d) const68497   VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, vk::TimeDomainEXT* pTimeDomains, Dispatch const &d) const
68498   {
68499     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( pTimeDomains ) ) );
68500   }
68501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68502   template<typename Allocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Dispatch const & d) const68503   VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const
68504   {
68505     std::vector<TimeDomainEXT,Allocator> timeDomains;
68506     uint32_t timeDomainCount;
68507     Result result;
68508     do
68509     {
68510       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
68511       if ( ( result == Result::eSuccess ) && timeDomainCount )
68512       {
68513         timeDomains.resize( timeDomainCount );
68514         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
68515       }
68516     } while ( result == Result::eIncomplete );
68517     if ( result == Result::eSuccess )
68518     {
68519       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
68520       timeDomains.resize( timeDomainCount );
68521     }
68522     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
68523   }
68524   template<typename Allocator, typename Dispatch>
getCalibrateableTimeDomainsEXT(Allocator const & vectorAllocator,Dispatch const & d) const68525   VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
68526   {
68527     std::vector<TimeDomainEXT,Allocator> timeDomains( vectorAllocator );
68528     uint32_t timeDomainCount;
68529     Result result;
68530     do
68531     {
68532       result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
68533       if ( ( result == Result::eSuccess ) && timeDomainCount )
68534       {
68535         timeDomains.resize( timeDomainCount );
68536         result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
68537       }
68538     } while ( result == Result::eIncomplete );
68539     if ( result == Result::eSuccess )
68540     {
68541       VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
68542       timeDomains.resize( timeDomainCount );
68543     }
68544     return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
68545   }
68546 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68547 
68548   template<typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,vk::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const68549   VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, vk::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const
68550   {
68551     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( pProperties ) ) );
68552   }
68553 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68554   template<typename Allocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Dispatch const & d) const68555   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const
68556   {
68557     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties;
68558     uint32_t propertyCount;
68559     Result result;
68560     do
68561     {
68562       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
68563       if ( ( result == Result::eSuccess ) && propertyCount )
68564       {
68565         properties.resize( propertyCount );
68566         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
68567       }
68568     } while ( result == Result::eIncomplete );
68569     if ( result == Result::eSuccess )
68570     {
68571       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68572       properties.resize( propertyCount );
68573     }
68574     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
68575   }
68576   template<typename Allocator, typename Dispatch>
getCooperativeMatrixPropertiesNV(Allocator const & vectorAllocator,Dispatch const & d) const68577   VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const
68578   {
68579     std::vector<CooperativeMatrixPropertiesNV,Allocator> properties( vectorAllocator );
68580     uint32_t propertyCount;
68581     Result result;
68582     do
68583     {
68584       result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
68585       if ( ( result == Result::eSuccess ) && propertyCount )
68586       {
68587         properties.resize( propertyCount );
68588         result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
68589       }
68590     } while ( result == Result::eIncomplete );
68591     if ( result == Result::eSuccess )
68592     {
68593       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68594       properties.resize( propertyCount );
68595     }
68596     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
68597   }
68598 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68599 
68600   template<typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,vk::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const68601   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, vk::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const
68602   {
68603     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( pProperties ) ) );
68604   }
68605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68606   template<typename Allocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Dispatch const & d) const68607   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const
68608   {
68609     std::vector<DisplayPlaneProperties2KHR,Allocator> properties;
68610     uint32_t propertyCount;
68611     Result result;
68612     do
68613     {
68614       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
68615       if ( ( result == Result::eSuccess ) && propertyCount )
68616       {
68617         properties.resize( propertyCount );
68618         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
68619       }
68620     } while ( result == Result::eIncomplete );
68621     if ( result == Result::eSuccess )
68622     {
68623       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68624       properties.resize( propertyCount );
68625     }
68626     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
68627   }
68628   template<typename Allocator, typename Dispatch>
getDisplayPlaneProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const68629   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
68630   {
68631     std::vector<DisplayPlaneProperties2KHR,Allocator> properties( vectorAllocator );
68632     uint32_t propertyCount;
68633     Result result;
68634     do
68635     {
68636       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
68637       if ( ( result == Result::eSuccess ) && propertyCount )
68638       {
68639         properties.resize( propertyCount );
68640         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
68641       }
68642     } while ( result == Result::eIncomplete );
68643     if ( result == Result::eSuccess )
68644     {
68645       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68646       properties.resize( propertyCount );
68647     }
68648     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
68649   }
68650 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68651 
68652   template<typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,vk::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const68653   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, vk::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const
68654   {
68655     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( pProperties ) ) );
68656   }
68657 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68658   template<typename Allocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Dispatch const & d) const68659   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const
68660   {
68661     std::vector<DisplayPlanePropertiesKHR,Allocator> properties;
68662     uint32_t propertyCount;
68663     Result result;
68664     do
68665     {
68666       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
68667       if ( ( result == Result::eSuccess ) && propertyCount )
68668       {
68669         properties.resize( propertyCount );
68670         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
68671       }
68672     } while ( result == Result::eIncomplete );
68673     if ( result == Result::eSuccess )
68674     {
68675       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68676       properties.resize( propertyCount );
68677     }
68678     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
68679   }
68680   template<typename Allocator, typename Dispatch>
getDisplayPlanePropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const68681   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
68682   {
68683     std::vector<DisplayPlanePropertiesKHR,Allocator> properties( vectorAllocator );
68684     uint32_t propertyCount;
68685     Result result;
68686     do
68687     {
68688       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
68689       if ( ( result == Result::eSuccess ) && propertyCount )
68690       {
68691         properties.resize( propertyCount );
68692         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
68693       }
68694     } while ( result == Result::eIncomplete );
68695     if ( result == Result::eSuccess )
68696     {
68697       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68698       properties.resize( propertyCount );
68699     }
68700     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
68701   }
68702 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68703 
68704   template<typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,vk::DisplayProperties2KHR * pProperties,Dispatch const & d) const68705   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, vk::DisplayProperties2KHR* pProperties, Dispatch const &d) const
68706   {
68707     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( pProperties ) ) );
68708   }
68709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68710   template<typename Allocator, typename Dispatch>
getDisplayProperties2KHR(Dispatch const & d) const68711   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const
68712   {
68713     std::vector<DisplayProperties2KHR,Allocator> properties;
68714     uint32_t propertyCount;
68715     Result result;
68716     do
68717     {
68718       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
68719       if ( ( result == Result::eSuccess ) && propertyCount )
68720       {
68721         properties.resize( propertyCount );
68722         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
68723       }
68724     } while ( result == Result::eIncomplete );
68725     if ( result == Result::eSuccess )
68726     {
68727       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68728       properties.resize( propertyCount );
68729     }
68730     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
68731   }
68732   template<typename Allocator, typename Dispatch>
getDisplayProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const68733   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
68734   {
68735     std::vector<DisplayProperties2KHR,Allocator> properties( vectorAllocator );
68736     uint32_t propertyCount;
68737     Result result;
68738     do
68739     {
68740       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
68741       if ( ( result == Result::eSuccess ) && propertyCount )
68742       {
68743         properties.resize( propertyCount );
68744         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
68745       }
68746     } while ( result == Result::eIncomplete );
68747     if ( result == Result::eSuccess )
68748     {
68749       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68750       properties.resize( propertyCount );
68751     }
68752     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
68753   }
68754 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68755 
68756   template<typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,vk::DisplayPropertiesKHR * pProperties,Dispatch const & d) const68757   VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, vk::DisplayPropertiesKHR* pProperties, Dispatch const &d) const
68758   {
68759     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( pProperties ) ) );
68760   }
68761 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68762   template<typename Allocator, typename Dispatch>
getDisplayPropertiesKHR(Dispatch const & d) const68763   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const
68764   {
68765     std::vector<DisplayPropertiesKHR,Allocator> properties;
68766     uint32_t propertyCount;
68767     Result result;
68768     do
68769     {
68770       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
68771       if ( ( result == Result::eSuccess ) && propertyCount )
68772       {
68773         properties.resize( propertyCount );
68774         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
68775       }
68776     } while ( result == Result::eIncomplete );
68777     if ( result == Result::eSuccess )
68778     {
68779       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68780       properties.resize( propertyCount );
68781     }
68782     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
68783   }
68784   template<typename Allocator, typename Dispatch>
getDisplayPropertiesKHR(Allocator const & vectorAllocator,Dispatch const & d) const68785   VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
68786   {
68787     std::vector<DisplayPropertiesKHR,Allocator> properties( vectorAllocator );
68788     uint32_t propertyCount;
68789     Result result;
68790     do
68791     {
68792       result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
68793       if ( ( result == Result::eSuccess ) && propertyCount )
68794       {
68795         properties.resize( propertyCount );
68796         result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
68797       }
68798     } while ( result == Result::eIncomplete );
68799     if ( result == Result::eSuccess )
68800     {
68801       VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
68802       properties.resize( propertyCount );
68803     }
68804     return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
68805   }
68806 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68807 
68808   template<typename Dispatch>
getExternalBufferProperties(const vk::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,vk::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const68809   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const vk::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, vk::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const
68810   {
68811     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
68812   }
68813 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68814   template<typename Dispatch>
getExternalBufferProperties(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const68815   VULKAN_HPP_INLINE vk::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const
68816   {
68817     vk::ExternalBufferProperties externalBufferProperties;
68818     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
68819     return externalBufferProperties;
68820   }
68821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68822 
68823   template<typename Dispatch>
getExternalBufferPropertiesKHR(const vk::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,vk::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const68824   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const vk::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, vk::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const
68825   {
68826     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
68827   }
68828 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68829   template<typename Dispatch>
getExternalBufferPropertiesKHR(const PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const68830   VULKAN_HPP_INLINE vk::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const
68831   {
68832     vk::ExternalBufferProperties externalBufferProperties;
68833     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
68834     return externalBufferProperties;
68835   }
68836 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68837 
68838   template<typename Dispatch>
getExternalFenceProperties(const vk::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,vk::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const68839   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const vk::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, vk::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const
68840   {
68841     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
68842   }
68843 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68844   template<typename Dispatch>
getExternalFenceProperties(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const68845   VULKAN_HPP_INLINE vk::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const
68846   {
68847     vk::ExternalFenceProperties externalFenceProperties;
68848     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
68849     return externalFenceProperties;
68850   }
68851 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68852 
68853   template<typename Dispatch>
getExternalFencePropertiesKHR(const vk::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,vk::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const68854   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const vk::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, vk::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const
68855   {
68856     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
68857   }
68858 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68859   template<typename Dispatch>
getExternalFencePropertiesKHR(const PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const68860   VULKAN_HPP_INLINE vk::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const
68861   {
68862     vk::ExternalFenceProperties externalFenceProperties;
68863     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
68864     return externalFenceProperties;
68865   }
68866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68867 
68868   template<typename Dispatch>
getExternalImageFormatPropertiesNV(vk::Format format,vk::ImageType type,vk::ImageTiling tiling,vk::ImageUsageFlags usage,vk::ImageCreateFlags flags,vk::ExternalMemoryHandleTypeFlagsNV externalHandleType,vk::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties,Dispatch const & d) const68869   VULKAN_HPP_INLINE Result PhysicalDevice::getExternalImageFormatPropertiesNV( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ExternalMemoryHandleTypeFlagsNV externalHandleType, vk::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d) const
68870   {
68871     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 ) ) );
68872   }
68873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68874   template<typename Dispatch>
getExternalImageFormatPropertiesNV(vk::Format format,vk::ImageType type,vk::ImageTiling tiling,vk::ImageUsageFlags usage,vk::ImageCreateFlags flags,vk::ExternalMemoryHandleTypeFlagsNV externalHandleType,Dispatch const & d) const68875   VULKAN_HPP_INLINE ResultValueType<vk::ExternalImageFormatPropertiesNV>::type PhysicalDevice::getExternalImageFormatPropertiesNV( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d ) const
68876   {
68877     vk::ExternalImageFormatPropertiesNV externalImageFormatProperties;
68878     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 ) ) );
68879     return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getExternalImageFormatPropertiesNV" );
68880   }
68881 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68882 
68883   template<typename Dispatch>
getExternalSemaphoreProperties(const vk::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,vk::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const68884   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const vk::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, vk::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const
68885   {
68886     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
68887   }
68888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68889   template<typename Dispatch>
getExternalSemaphoreProperties(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const68890   VULKAN_HPP_INLINE vk::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const
68891   {
68892     vk::ExternalSemaphoreProperties externalSemaphoreProperties;
68893     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
68894     return externalSemaphoreProperties;
68895   }
68896 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68897 
68898   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const vk::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,vk::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const68899   VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const vk::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, vk::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const
68900   {
68901     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
68902   }
68903 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68904   template<typename Dispatch>
getExternalSemaphorePropertiesKHR(const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const68905   VULKAN_HPP_INLINE vk::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const
68906   {
68907     vk::ExternalSemaphoreProperties externalSemaphoreProperties;
68908     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
68909     return externalSemaphoreProperties;
68910   }
68911 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68912 
68913   template<typename Dispatch>
getFeatures(vk::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const68914   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( vk::PhysicalDeviceFeatures* pFeatures, Dispatch const &d) const
68915   {
68916     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( pFeatures ) );
68917   }
68918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68919   template<typename Dispatch>
getFeatures(Dispatch const & d) const68920   VULKAN_HPP_INLINE vk::PhysicalDeviceFeatures PhysicalDevice::getFeatures(Dispatch const &d ) const
68921   {
68922     vk::PhysicalDeviceFeatures features;
68923     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( &features ) );
68924     return features;
68925   }
68926 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68927 
68928   template<typename Dispatch>
getFeatures2(vk::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const68929   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( vk::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const
68930   {
68931     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
68932   }
68933 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68934   template<typename Dispatch>
getFeatures2(Dispatch const & d) const68935   VULKAN_HPP_INLINE vk::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2(Dispatch const &d ) const
68936   {
68937     vk::PhysicalDeviceFeatures2 features;
68938     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
68939     return features;
68940   }
68941   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2(Dispatch const & d) const68942   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2(Dispatch const &d ) const
68943   {
68944     StructureChain<X, Y, Z...> structureChain;
68945     vk::PhysicalDeviceFeatures2& features = structureChain.template get<vk::PhysicalDeviceFeatures2>();
68946     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
68947     return structureChain;
68948   }
68949 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68950 
68951   template<typename Dispatch>
getFeatures2KHR(vk::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const68952   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( vk::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const
68953   {
68954     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
68955   }
68956 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68957   template<typename Dispatch>
getFeatures2KHR(Dispatch const & d) const68958   VULKAN_HPP_INLINE vk::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const
68959   {
68960     vk::PhysicalDeviceFeatures2 features;
68961     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
68962     return features;
68963   }
68964   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFeatures2KHR(Dispatch const & d) const68965   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const
68966   {
68967     StructureChain<X, Y, Z...> structureChain;
68968     vk::PhysicalDeviceFeatures2& features = structureChain.template get<vk::PhysicalDeviceFeatures2>();
68969     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
68970     return structureChain;
68971   }
68972 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68973 
68974   template<typename Dispatch>
getFormatProperties(vk::Format format,vk::FormatProperties * pFormatProperties,Dispatch const & d) const68975   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( vk::Format format, vk::FormatProperties* pFormatProperties, Dispatch const &d) const
68976   {
68977     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( pFormatProperties ) );
68978   }
68979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68980   template<typename Dispatch>
getFormatProperties(vk::Format format,Dispatch const & d) const68981   VULKAN_HPP_INLINE vk::FormatProperties PhysicalDevice::getFormatProperties( vk::Format format, Dispatch const &d ) const
68982   {
68983     vk::FormatProperties formatProperties;
68984     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( &formatProperties ) );
68985     return formatProperties;
68986   }
68987 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
68988 
68989   template<typename Dispatch>
getFormatProperties2(vk::Format format,vk::FormatProperties2 * pFormatProperties,Dispatch const & d) const68990   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( vk::Format format, vk::FormatProperties2* pFormatProperties, Dispatch const &d) const
68991   {
68992     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
68993   }
68994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
68995   template<typename Dispatch>
getFormatProperties2(vk::Format format,Dispatch const & d) const68996   VULKAN_HPP_INLINE vk::FormatProperties2 PhysicalDevice::getFormatProperties2( vk::Format format, Dispatch const &d ) const
68997   {
68998     vk::FormatProperties2 formatProperties;
68999     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
69000     return formatProperties;
69001   }
69002   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2(vk::Format format,Dispatch const & d) const69003   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( vk::Format format, Dispatch const &d ) const
69004   {
69005     StructureChain<X, Y, Z...> structureChain;
69006     vk::FormatProperties2& formatProperties = structureChain.template get<vk::FormatProperties2>();
69007     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
69008     return structureChain;
69009   }
69010 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69011 
69012   template<typename Dispatch>
getFormatProperties2KHR(vk::Format format,vk::FormatProperties2 * pFormatProperties,Dispatch const & d) const69013   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( vk::Format format, vk::FormatProperties2* pFormatProperties, Dispatch const &d) const
69014   {
69015     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
69016   }
69017 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69018   template<typename Dispatch>
getFormatProperties2KHR(vk::Format format,Dispatch const & d) const69019   VULKAN_HPP_INLINE vk::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( vk::Format format, Dispatch const &d ) const
69020   {
69021     vk::FormatProperties2 formatProperties;
69022     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
69023     return formatProperties;
69024   }
69025   template<typename X, typename Y, typename ...Z, typename Dispatch>
getFormatProperties2KHR(vk::Format format,Dispatch const & d) const69026   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( vk::Format format, Dispatch const &d ) const
69027   {
69028     StructureChain<X, Y, Z...> structureChain;
69029     vk::FormatProperties2& formatProperties = structureChain.template get<vk::FormatProperties2>();
69030     d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
69031     return structureChain;
69032   }
69033 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69034 
69035   template<typename Dispatch>
getGeneratedCommandsPropertiesNVX(vk::DeviceGeneratedCommandsFeaturesNVX * pFeatures,vk::DeviceGeneratedCommandsLimitsNVX * pLimits,Dispatch const & d) const69036   VULKAN_HPP_INLINE void PhysicalDevice::getGeneratedCommandsPropertiesNVX( vk::DeviceGeneratedCommandsFeaturesNVX* pFeatures, vk::DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d) const
69037   {
69038     d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( pFeatures ), reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( pLimits ) );
69039   }
69040 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69041   template<typename Dispatch>
getGeneratedCommandsPropertiesNVX(DeviceGeneratedCommandsFeaturesNVX & features,Dispatch const & d) const69042   VULKAN_HPP_INLINE vk::DeviceGeneratedCommandsLimitsNVX PhysicalDevice::getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d ) const
69043   {
69044     vk::DeviceGeneratedCommandsLimitsNVX limits;
69045     d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( &features ), reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( &limits ) );
69046     return limits;
69047   }
69048 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69049 
69050   template<typename Dispatch>
getImageFormatProperties(vk::Format format,vk::ImageType type,vk::ImageTiling tiling,vk::ImageUsageFlags usage,vk::ImageCreateFlags flags,vk::ImageFormatProperties * pImageFormatProperties,Dispatch const & d) const69051   VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, vk::ImageFormatProperties* pImageFormatProperties, Dispatch const &d) const
69052   {
69053     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 ) ) );
69054   }
69055 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69056   template<typename Dispatch>
getImageFormatProperties(vk::Format format,vk::ImageType type,vk::ImageTiling tiling,vk::ImageUsageFlags usage,vk::ImageCreateFlags flags,Dispatch const & d) const69057   VULKAN_HPP_INLINE ResultValueType<vk::ImageFormatProperties>::type PhysicalDevice::getImageFormatProperties( vk::Format format, vk::ImageType type, vk::ImageTiling tiling, vk::ImageUsageFlags usage, vk::ImageCreateFlags flags, Dispatch const &d ) const
69058   {
69059     vk::ImageFormatProperties imageFormatProperties;
69060     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 ) ) );
69061     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties" );
69062   }
69063 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69064 
69065   template<typename Dispatch>
getImageFormatProperties2(const vk::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,vk::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const69066   VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const vk::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, vk::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const
69067   {
69068     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
69069   }
69070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69071   template<typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const69072   VULKAN_HPP_INLINE ResultValueType<vk::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
69073   {
69074     vk::ImageFormatProperties2 imageFormatProperties;
69075     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
69076     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
69077   }
69078   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const69079   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
69080   {
69081     StructureChain<X, Y, Z...> structureChain;
69082     vk::ImageFormatProperties2& imageFormatProperties = structureChain.template get<vk::ImageFormatProperties2>();
69083     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
69084     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
69085   }
69086 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69087 
69088   template<typename Dispatch>
getImageFormatProperties2KHR(const vk::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,vk::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const69089   VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const vk::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, vk::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const
69090   {
69091     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
69092   }
69093 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69094   template<typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const69095   VULKAN_HPP_INLINE ResultValueType<vk::ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
69096   {
69097     vk::ImageFormatProperties2 imageFormatProperties;
69098     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
69099     return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
69100   }
69101   template<typename X, typename Y, typename ...Z, typename Dispatch>
getImageFormatProperties2KHR(const PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const69102   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
69103   {
69104     StructureChain<X, Y, Z...> structureChain;
69105     vk::ImageFormatProperties2& imageFormatProperties = structureChain.template get<vk::ImageFormatProperties2>();
69106     Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
69107     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
69108   }
69109 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69110 
69111   template<typename Dispatch>
getMemoryProperties(vk::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const69112   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( vk::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d) const
69113   {
69114     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( pMemoryProperties ) );
69115   }
69116 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69117   template<typename Dispatch>
getMemoryProperties(Dispatch const & d) const69118   VULKAN_HPP_INLINE vk::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties(Dispatch const &d ) const
69119   {
69120     vk::PhysicalDeviceMemoryProperties memoryProperties;
69121     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( &memoryProperties ) );
69122     return memoryProperties;
69123   }
69124 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69125 
69126   template<typename Dispatch>
getMemoryProperties2(vk::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const69127   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( vk::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const
69128   {
69129     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
69130   }
69131 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69132   template<typename Dispatch>
getMemoryProperties2(Dispatch const & d) const69133   VULKAN_HPP_INLINE vk::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const
69134   {
69135     vk::PhysicalDeviceMemoryProperties2 memoryProperties;
69136     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
69137     return memoryProperties;
69138   }
69139   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2(Dispatch const & d) const69140   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const
69141   {
69142     StructureChain<X, Y, Z...> structureChain;
69143     vk::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<vk::PhysicalDeviceMemoryProperties2>();
69144     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
69145     return structureChain;
69146   }
69147 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69148 
69149   template<typename Dispatch>
getMemoryProperties2KHR(vk::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const69150   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( vk::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const
69151   {
69152     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
69153   }
69154 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69155   template<typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const69156   VULKAN_HPP_INLINE vk::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const
69157   {
69158     vk::PhysicalDeviceMemoryProperties2 memoryProperties;
69159     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
69160     return memoryProperties;
69161   }
69162   template<typename X, typename Y, typename ...Z, typename Dispatch>
getMemoryProperties2KHR(Dispatch const & d) const69163   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const
69164   {
69165     StructureChain<X, Y, Z...> structureChain;
69166     vk::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<vk::PhysicalDeviceMemoryProperties2>();
69167     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
69168     return structureChain;
69169   }
69170 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69171 
69172   template<typename Dispatch>
getMultisamplePropertiesEXT(vk::SampleCountFlagBits samples,vk::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const69173   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( vk::SampleCountFlagBits samples, vk::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d) const
69174   {
69175     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( pMultisampleProperties ) );
69176   }
69177 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69178   template<typename Dispatch>
getMultisamplePropertiesEXT(vk::SampleCountFlagBits samples,Dispatch const & d) const69179   VULKAN_HPP_INLINE vk::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( vk::SampleCountFlagBits samples, Dispatch const &d ) const
69180   {
69181     vk::MultisamplePropertiesEXT multisampleProperties;
69182     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( &multisampleProperties ) );
69183     return multisampleProperties;
69184   }
69185 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69186 
69187   template<typename Dispatch>
getPresentRectanglesKHR(vk::SurfaceKHR surface,uint32_t * pRectCount,vk::Rect2D * pRects,Dispatch const & d) const69188   VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( vk::SurfaceKHR surface, uint32_t* pRectCount, vk::Rect2D* pRects, Dispatch const &d) const
69189   {
69190     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D*>( pRects ) ) );
69191   }
69192 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69193   template<typename Allocator, typename Dispatch>
getPresentRectanglesKHR(vk::SurfaceKHR surface,Dispatch const & d) const69194   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( vk::SurfaceKHR surface, Dispatch const &d ) const
69195   {
69196     std::vector<Rect2D,Allocator> rects;
69197     uint32_t rectCount;
69198     Result result;
69199     do
69200     {
69201       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
69202       if ( ( result == Result::eSuccess ) && rectCount )
69203       {
69204         rects.resize( rectCount );
69205         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
69206       }
69207     } while ( result == Result::eIncomplete );
69208     if ( result == Result::eSuccess )
69209     {
69210       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
69211       rects.resize( rectCount );
69212     }
69213     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
69214   }
69215   template<typename Allocator, typename Dispatch>
getPresentRectanglesKHR(vk::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const69216   VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
69217   {
69218     std::vector<Rect2D,Allocator> rects( vectorAllocator );
69219     uint32_t rectCount;
69220     Result result;
69221     do
69222     {
69223       result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
69224       if ( ( result == Result::eSuccess ) && rectCount )
69225       {
69226         rects.resize( rectCount );
69227         result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
69228       }
69229     } while ( result == Result::eIncomplete );
69230     if ( result == Result::eSuccess )
69231     {
69232       VULKAN_HPP_ASSERT( rectCount <= rects.size() );
69233       rects.resize( rectCount );
69234     }
69235     return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
69236   }
69237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69238 
69239   template<typename Dispatch>
getProperties(vk::PhysicalDeviceProperties * pProperties,Dispatch const & d) const69240   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( vk::PhysicalDeviceProperties* pProperties, Dispatch const &d) const
69241   {
69242     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( pProperties ) );
69243   }
69244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69245   template<typename Dispatch>
getProperties(Dispatch const & d) const69246   VULKAN_HPP_INLINE vk::PhysicalDeviceProperties PhysicalDevice::getProperties(Dispatch const &d ) const
69247   {
69248     vk::PhysicalDeviceProperties properties;
69249     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) );
69250     return properties;
69251   }
69252 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69253 
69254   template<typename Dispatch>
getProperties2(vk::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const69255   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( vk::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const
69256   {
69257     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
69258   }
69259 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69260   template<typename Dispatch>
getProperties2(Dispatch const & d) const69261   VULKAN_HPP_INLINE vk::PhysicalDeviceProperties2 PhysicalDevice::getProperties2(Dispatch const &d ) const
69262   {
69263     vk::PhysicalDeviceProperties2 properties;
69264     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
69265     return properties;
69266   }
69267   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2(Dispatch const & d) const69268   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2(Dispatch const &d ) const
69269   {
69270     StructureChain<X, Y, Z...> structureChain;
69271     vk::PhysicalDeviceProperties2& properties = structureChain.template get<vk::PhysicalDeviceProperties2>();
69272     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
69273     return structureChain;
69274   }
69275 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69276 
69277   template<typename Dispatch>
getProperties2KHR(vk::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const69278   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( vk::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const
69279   {
69280     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
69281   }
69282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69283   template<typename Dispatch>
getProperties2KHR(Dispatch const & d) const69284   VULKAN_HPP_INLINE vk::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR(Dispatch const &d ) const
69285   {
69286     vk::PhysicalDeviceProperties2 properties;
69287     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
69288     return properties;
69289   }
69290   template<typename X, typename Y, typename ...Z, typename Dispatch>
getProperties2KHR(Dispatch const & d) const69291   VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const
69292   {
69293     StructureChain<X, Y, Z...> structureChain;
69294     vk::PhysicalDeviceProperties2& properties = structureChain.template get<vk::PhysicalDeviceProperties2>();
69295     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
69296     return structureChain;
69297   }
69298 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69299 
69300   template<typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,vk::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const69301   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d) const
69302   {
69303     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( pQueueFamilyProperties ) );
69304   }
69305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69306   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties(Dispatch const & d) const69307   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Dispatch const &d ) const
69308   {
69309     std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties;
69310     uint32_t queueFamilyPropertyCount;
69311     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69312     queueFamilyProperties.resize( queueFamilyPropertyCount );
69313     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
69314     return queueFamilyProperties;
69315   }
69316   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties(Allocator const & vectorAllocator,Dispatch const & d) const69317   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
69318   {
69319     std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties( vectorAllocator );
69320     uint32_t queueFamilyPropertyCount;
69321     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69322     queueFamilyProperties.resize( queueFamilyPropertyCount );
69323     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
69324     return queueFamilyProperties;
69325   }
69326 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69327 
69328   template<typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,vk::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const69329   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const
69330   {
69331     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
69332   }
69333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69334   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const69335   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
69336   {
69337     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
69338     uint32_t queueFamilyPropertyCount;
69339     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69340     queueFamilyProperties.resize( queueFamilyPropertyCount );
69341     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69342     return queueFamilyProperties;
69343   }
69344   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const69345   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
69346   {
69347     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
69348     uint32_t queueFamilyPropertyCount;
69349     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69350     queueFamilyProperties.resize( queueFamilyPropertyCount );
69351     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69352     return queueFamilyProperties;
69353   }
69354   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Dispatch const & d) const69355   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
69356   {
69357     std::vector<StructureChain,Allocator> queueFamilyProperties;
69358     uint32_t queueFamilyPropertyCount;
69359     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69360     queueFamilyProperties.resize( queueFamilyPropertyCount );
69361     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69362     return queueFamilyProperties;
69363   }
69364   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2(Allocator const & vectorAllocator,Dispatch const & d) const69365   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
69366   {
69367     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
69368     uint32_t queueFamilyPropertyCount;
69369     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69370     queueFamilyProperties.resize( queueFamilyPropertyCount );
69371     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69372     return queueFamilyProperties;
69373   }
69374 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69375 
69376   template<typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,vk::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const69377   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, vk::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const
69378   {
69379     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
69380   }
69381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69382   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const69383   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
69384   {
69385     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
69386     uint32_t queueFamilyPropertyCount;
69387     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69388     queueFamilyProperties.resize( queueFamilyPropertyCount );
69389     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69390     return queueFamilyProperties;
69391   }
69392   template<typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const69393   VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
69394   {
69395     std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
69396     uint32_t queueFamilyPropertyCount;
69397     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69398     queueFamilyProperties.resize( queueFamilyPropertyCount );
69399     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69400     return queueFamilyProperties;
69401   }
69402   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Dispatch const & d) const69403   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
69404   {
69405     std::vector<StructureChain,Allocator> queueFamilyProperties;
69406     uint32_t queueFamilyPropertyCount;
69407     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69408     queueFamilyProperties.resize( queueFamilyPropertyCount );
69409     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69410     return queueFamilyProperties;
69411   }
69412   template<typename StructureChain, typename Allocator, typename Dispatch>
getQueueFamilyProperties2KHR(Allocator const & vectorAllocator,Dispatch const & d) const69413   VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
69414   {
69415     std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
69416     uint32_t queueFamilyPropertyCount;
69417     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
69418     queueFamilyProperties.resize( queueFamilyPropertyCount );
69419     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
69420     return queueFamilyProperties;
69421   }
69422 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69423 
69424   template<typename Dispatch>
getSparseImageFormatProperties(vk::Format format,vk::ImageType type,vk::SampleCountFlagBits samples,vk::ImageUsageFlags usage,vk::ImageTiling tiling,uint32_t * pPropertyCount,vk::SparseImageFormatProperties * pProperties,Dispatch const & d) const69425   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, uint32_t* pPropertyCount, vk::SparseImageFormatProperties* pProperties, Dispatch const &d) const
69426   {
69427     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 ) );
69428   }
69429 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69430   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties(vk::Format format,vk::ImageType type,vk::SampleCountFlagBits samples,vk::ImageUsageFlags usage,vk::ImageTiling tiling,Dispatch const & d) const69431   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> PhysicalDevice::getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, Dispatch const &d ) const
69432   {
69433     std::vector<SparseImageFormatProperties,Allocator> properties;
69434     uint32_t propertyCount;
69435     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 );
69436     properties.resize( propertyCount );
69437     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() ) );
69438     return properties;
69439   }
69440   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties(vk::Format format,vk::ImageType type,vk::SampleCountFlagBits samples,vk::ImageUsageFlags usage,vk::ImageTiling tiling,Allocator const & vectorAllocator,Dispatch const & d) const69441   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> PhysicalDevice::getSparseImageFormatProperties( vk::Format format, vk::ImageType type, vk::SampleCountFlagBits samples, vk::ImageUsageFlags usage, vk::ImageTiling tiling, Allocator const& vectorAllocator, Dispatch const &d ) const
69442   {
69443     std::vector<SparseImageFormatProperties,Allocator> properties( vectorAllocator );
69444     uint32_t propertyCount;
69445     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 );
69446     properties.resize( propertyCount );
69447     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() ) );
69448     return properties;
69449   }
69450 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69451 
69452   template<typename Dispatch>
getSparseImageFormatProperties2(const vk::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,vk::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const69453   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const vk::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, vk::SparseImageFormatProperties2* pProperties, Dispatch const &d) const
69454   {
69455     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
69456   }
69457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69458   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const69459   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
69460   {
69461     std::vector<SparseImageFormatProperties2,Allocator> properties;
69462     uint32_t propertyCount;
69463     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
69464     properties.resize( propertyCount );
69465     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
69466     return properties;
69467   }
69468   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Allocator const & vectorAllocator,Dispatch const & d) const69469   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
69470   {
69471     std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
69472     uint32_t propertyCount;
69473     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
69474     properties.resize( propertyCount );
69475     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
69476     return properties;
69477   }
69478 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69479 
69480   template<typename Dispatch>
getSparseImageFormatProperties2KHR(const vk::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,vk::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const69481   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const vk::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, vk::SparseImageFormatProperties2* pProperties, Dispatch const &d) const
69482   {
69483     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
69484   }
69485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69486   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const69487   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
69488   {
69489     std::vector<SparseImageFormatProperties2,Allocator> properties;
69490     uint32_t propertyCount;
69491     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
69492     properties.resize( propertyCount );
69493     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
69494     return properties;
69495   }
69496   template<typename Allocator, typename Dispatch>
getSparseImageFormatProperties2KHR(const PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Allocator const & vectorAllocator,Dispatch const & d) const69497   VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
69498   {
69499     std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
69500     uint32_t propertyCount;
69501     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
69502     properties.resize( propertyCount );
69503     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
69504     return properties;
69505   }
69506 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69507 
69508   template<typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,vk::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const69509   VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, vk::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const
69510   {
69511     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( pCombinations ) ) );
69512   }
69513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69514   template<typename Allocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const69515   VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const
69516   {
69517     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations;
69518     uint32_t combinationCount;
69519     Result result;
69520     do
69521     {
69522       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
69523       if ( ( result == Result::eSuccess ) && combinationCount )
69524       {
69525         combinations.resize( combinationCount );
69526         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
69527       }
69528     } while ( result == Result::eIncomplete );
69529     if ( result == Result::eSuccess )
69530     {
69531       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
69532       combinations.resize( combinationCount );
69533     }
69534     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
69535   }
69536   template<typename Allocator, typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const & vectorAllocator,Dispatch const & d) const69537   VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const
69538   {
69539     std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations( vectorAllocator );
69540     uint32_t combinationCount;
69541     Result result;
69542     do
69543     {
69544       result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
69545       if ( ( result == Result::eSuccess ) && combinationCount )
69546       {
69547         combinations.resize( combinationCount );
69548         result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
69549       }
69550     } while ( result == Result::eIncomplete );
69551     if ( result == Result::eSuccess )
69552     {
69553       VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
69554       combinations.resize( combinationCount );
69555     }
69556     return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
69557   }
69558 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69559 
69560   template<typename Dispatch>
getSurfaceCapabilities2EXT(vk::SurfaceKHR surface,vk::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const69561   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( vk::SurfaceKHR surface, vk::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d) const
69562   {
69563     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( pSurfaceCapabilities ) ) );
69564   }
69565 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69566   template<typename Dispatch>
getSurfaceCapabilities2EXT(vk::SurfaceKHR surface,Dispatch const & d) const69567   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceCapabilities2EXT>::type PhysicalDevice::getSurfaceCapabilities2EXT( vk::SurfaceKHR surface, Dispatch const &d ) const
69568   {
69569     vk::SurfaceCapabilities2EXT surfaceCapabilities;
69570     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( &surfaceCapabilities ) ) );
69571     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2EXT" );
69572   }
69573 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69574 
69575   template<typename Dispatch>
getSurfaceCapabilities2KHR(const vk::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,vk::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const69576   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, vk::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d) const
69577   {
69578     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( pSurfaceCapabilities ) ) );
69579   }
69580 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69581   template<typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const69582   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceCapabilities2KHR>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
69583   {
69584     vk::SurfaceCapabilities2KHR surfaceCapabilities;
69585     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
69586     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
69587   }
69588   template<typename X, typename Y, typename ...Z, typename Dispatch>
getSurfaceCapabilities2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const69589   VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
69590   {
69591     StructureChain<X, Y, Z...> structureChain;
69592     vk::SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get<vk::SurfaceCapabilities2KHR>();
69593     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
69594     return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
69595   }
69596 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69597 
69598   template<typename Dispatch>
getSurfaceCapabilitiesKHR(vk::SurfaceKHR surface,vk::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const69599   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( vk::SurfaceKHR surface, vk::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d) const
69600   {
69601     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( pSurfaceCapabilities ) ) );
69602   }
69603 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69604   template<typename Dispatch>
getSurfaceCapabilitiesKHR(vk::SurfaceKHR surface,Dispatch const & d) const69605   VULKAN_HPP_INLINE ResultValueType<vk::SurfaceCapabilitiesKHR>::type PhysicalDevice::getSurfaceCapabilitiesKHR( vk::SurfaceKHR surface, Dispatch const &d ) const
69606   {
69607     vk::SurfaceCapabilitiesKHR surfaceCapabilities;
69608     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( &surfaceCapabilities ) ) );
69609     return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilitiesKHR" );
69610   }
69611 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69612 
69613   template<typename Dispatch>
getSurfaceFormats2KHR(const vk::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,vk::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const69614   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, vk::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d) const
69615   {
69616     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( pSurfaceFormats ) ) );
69617   }
69618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69619   template<typename Allocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const69620   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
69621   {
69622     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats;
69623     uint32_t surfaceFormatCount;
69624     Result result;
69625     do
69626     {
69627       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
69628       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
69629       {
69630         surfaceFormats.resize( surfaceFormatCount );
69631         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
69632       }
69633     } while ( result == Result::eIncomplete );
69634     if ( result == Result::eSuccess )
69635     {
69636       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
69637       surfaceFormats.resize( surfaceFormatCount );
69638     }
69639     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
69640   }
69641   template<typename Allocator, typename Dispatch>
getSurfaceFormats2KHR(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const69642   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
69643   {
69644     std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats( vectorAllocator );
69645     uint32_t surfaceFormatCount;
69646     Result result;
69647     do
69648     {
69649       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
69650       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
69651       {
69652         surfaceFormats.resize( surfaceFormatCount );
69653         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
69654       }
69655     } while ( result == Result::eIncomplete );
69656     if ( result == Result::eSuccess )
69657     {
69658       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
69659       surfaceFormats.resize( surfaceFormatCount );
69660     }
69661     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
69662   }
69663 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69664 
69665   template<typename Dispatch>
getSurfaceFormatsKHR(vk::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,vk::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const69666   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( vk::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, vk::SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d) const
69667   {
69668     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( pSurfaceFormats ) ) );
69669   }
69670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69671   template<typename Allocator, typename Dispatch>
getSurfaceFormatsKHR(vk::SurfaceKHR surface,Dispatch const & d) const69672   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( vk::SurfaceKHR surface, Dispatch const &d ) const
69673   {
69674     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats;
69675     uint32_t surfaceFormatCount;
69676     Result result;
69677     do
69678     {
69679       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
69680       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
69681       {
69682         surfaceFormats.resize( surfaceFormatCount );
69683         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
69684       }
69685     } while ( result == Result::eIncomplete );
69686     if ( result == Result::eSuccess )
69687     {
69688       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
69689       surfaceFormats.resize( surfaceFormatCount );
69690     }
69691     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
69692   }
69693   template<typename Allocator, typename Dispatch>
getSurfaceFormatsKHR(vk::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const69694   VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
69695   {
69696     std::vector<SurfaceFormatKHR,Allocator> surfaceFormats( vectorAllocator );
69697     uint32_t surfaceFormatCount;
69698     Result result;
69699     do
69700     {
69701       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
69702       if ( ( result == Result::eSuccess ) && surfaceFormatCount )
69703       {
69704         surfaceFormats.resize( surfaceFormatCount );
69705         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
69706       }
69707     } while ( result == Result::eIncomplete );
69708     if ( result == Result::eSuccess )
69709     {
69710       VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
69711       surfaceFormats.resize( surfaceFormatCount );
69712     }
69713     return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
69714   }
69715 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69716 
69717 #ifdef VK_USE_PLATFORM_WIN32_KHR
69718   template<typename Dispatch>
getSurfacePresentModes2EXT(const vk::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,vk::PresentModeKHR * pPresentModes,Dispatch const & d) const69719   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const vk::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, vk::PresentModeKHR* pPresentModes, Dispatch const &d) const
69720   {
69721     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
69722   }
69723 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69724   template<typename Allocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const69725   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
69726   {
69727     std::vector<PresentModeKHR,Allocator> presentModes;
69728     uint32_t presentModeCount;
69729     Result result;
69730     do
69731     {
69732       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
69733       if ( ( result == Result::eSuccess ) && presentModeCount )
69734       {
69735         presentModes.resize( presentModeCount );
69736         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
69737       }
69738     } while ( result == Result::eIncomplete );
69739     if ( result == Result::eSuccess )
69740     {
69741       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
69742       presentModes.resize( presentModeCount );
69743     }
69744     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
69745   }
69746   template<typename Allocator, typename Dispatch>
getSurfacePresentModes2EXT(const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Allocator const & vectorAllocator,Dispatch const & d) const69747   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
69748   {
69749     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
69750     uint32_t presentModeCount;
69751     Result result;
69752     do
69753     {
69754       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
69755       if ( ( result == Result::eSuccess ) && presentModeCount )
69756       {
69757         presentModes.resize( presentModeCount );
69758         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
69759       }
69760     } while ( result == Result::eIncomplete );
69761     if ( result == Result::eSuccess )
69762     {
69763       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
69764       presentModes.resize( presentModeCount );
69765     }
69766     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
69767   }
69768 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69769 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
69770 
69771   template<typename Dispatch>
getSurfacePresentModesKHR(vk::SurfaceKHR surface,uint32_t * pPresentModeCount,vk::PresentModeKHR * pPresentModes,Dispatch const & d) const69772   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( vk::SurfaceKHR surface, uint32_t* pPresentModeCount, vk::PresentModeKHR* pPresentModes, Dispatch const &d) const
69773   {
69774     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
69775   }
69776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69777   template<typename Allocator, typename Dispatch>
getSurfacePresentModesKHR(vk::SurfaceKHR surface,Dispatch const & d) const69778   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( vk::SurfaceKHR surface, Dispatch const &d ) const
69779   {
69780     std::vector<PresentModeKHR,Allocator> presentModes;
69781     uint32_t presentModeCount;
69782     Result result;
69783     do
69784     {
69785       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
69786       if ( ( result == Result::eSuccess ) && presentModeCount )
69787       {
69788         presentModes.resize( presentModeCount );
69789         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
69790       }
69791     } while ( result == Result::eIncomplete );
69792     if ( result == Result::eSuccess )
69793     {
69794       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
69795       presentModes.resize( presentModeCount );
69796     }
69797     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
69798   }
69799   template<typename Allocator, typename Dispatch>
getSurfacePresentModesKHR(vk::SurfaceKHR surface,Allocator const & vectorAllocator,Dispatch const & d) const69800   VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( vk::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
69801   {
69802     std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
69803     uint32_t presentModeCount;
69804     Result result;
69805     do
69806     {
69807       result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
69808       if ( ( result == Result::eSuccess ) && presentModeCount )
69809       {
69810         presentModes.resize( presentModeCount );
69811         result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
69812       }
69813     } while ( result == Result::eIncomplete );
69814     if ( result == Result::eSuccess )
69815     {
69816       VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
69817       presentModes.resize( presentModeCount );
69818     }
69819     return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
69820   }
69821 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69822 
69823   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,vk::SurfaceKHR surface,vk::Bool32 * pSupported,Dispatch const & d) const69824   VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, vk::SurfaceKHR surface, vk::Bool32* pSupported, Dispatch const &d) const
69825   {
69826     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( pSupported ) ) );
69827   }
69828 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69829   template<typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,vk::SurfaceKHR surface,Dispatch const & d) const69830   VULKAN_HPP_INLINE ResultValueType<vk::Bool32>::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, vk::SurfaceKHR surface, Dispatch const &d ) const
69831   {
69832     vk::Bool32 supported;
69833     Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( &supported ) ) );
69834     return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceSupportKHR" );
69835   }
69836 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69837 
69838 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
69839   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const69840   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const
69841   {
69842     return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
69843   }
69844 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69845   template<typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const69846   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const
69847   {
69848     return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
69849   }
69850 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69851 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
69852 
69853 #ifdef VK_USE_PLATFORM_WIN32_KHR
69854 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
69855   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const69856   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const
69857   {
69858     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
69859   }
69860 #else
69861   template<typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const69862   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const
69863   {
69864     return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
69865   }
69866 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69867 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
69868 
69869 #ifdef VK_USE_PLATFORM_XCB_KHR
69870   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const69871   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d) const
69872   {
69873     return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
69874   }
69875 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69876   template<typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const69877   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d ) const
69878   {
69879     return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
69880   }
69881 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69882 #endif /*VK_USE_PLATFORM_XCB_KHR*/
69883 
69884 #ifdef VK_USE_PLATFORM_XLIB_KHR
69885   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const69886   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d) const
69887   {
69888     return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
69889   }
69890 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69891   template<typename Dispatch>
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const69892   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d ) const
69893   {
69894     return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
69895   }
69896 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69897 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
69898 
69899 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
69900   template<typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,vk::DisplayKHR * pDisplay,Dispatch const & d) const69901   VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, vk::DisplayKHR* pDisplay, Dispatch const &d) const
69902   {
69903     return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( pDisplay ) ) );
69904   }
69905 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69906   template<typename Dispatch>
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const69907   VULKAN_HPP_INLINE ResultValueType<vk::DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d ) const
69908   {
69909     vk::DisplayKHR display;
69910     Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( &display ) ) );
69911     return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getRandROutputDisplayEXT" );
69912   }
69913 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69914 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
69915 
69916 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
69917   template<typename Dispatch>
releaseDisplayEXT(vk::DisplayKHR display,Dispatch const & d) const69918   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( vk::DisplayKHR display, Dispatch const &d) const
69919   {
69920     return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
69921   }
69922 #else
69923   template<typename Dispatch>
releaseDisplayEXT(vk::DisplayKHR display,Dispatch const & d) const69924   VULKAN_HPP_INLINE ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( vk::DisplayKHR display, Dispatch const &d ) const
69925   {
69926     Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
69927     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::releaseDisplayEXT" );
69928   }
69929 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69930 
69931   template<typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,vk::CheckpointDataNV * pCheckpointData,Dispatch const & d) const69932   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, vk::CheckpointDataNV* pCheckpointData, Dispatch const &d) const
69933   {
69934     d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( pCheckpointData ) );
69935   }
69936 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69937   template<typename Allocator, typename Dispatch>
getCheckpointDataNV(Dispatch const & d) const69938   VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Dispatch const &d ) const
69939   {
69940     std::vector<CheckpointDataNV,Allocator> checkpointData;
69941     uint32_t checkpointDataCount;
69942     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
69943     checkpointData.resize( checkpointDataCount );
69944     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
69945     return checkpointData;
69946   }
69947   template<typename Allocator, typename Dispatch>
getCheckpointDataNV(Allocator const & vectorAllocator,Dispatch const & d) const69948   VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const
69949   {
69950     std::vector<CheckpointDataNV,Allocator> checkpointData( vectorAllocator );
69951     uint32_t checkpointDataCount;
69952     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
69953     checkpointData.resize( checkpointDataCount );
69954     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
69955     return checkpointData;
69956   }
69957 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69958 
69959   template<typename Dispatch>
beginDebugUtilsLabelEXT(const vk::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const69960   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
69961   {
69962     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
69963   }
69964 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69965   template<typename Dispatch>
beginDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const69966   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
69967   {
69968     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
69969   }
69970 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69971 
69972   template<typename Dispatch>
bindSparse(uint32_t bindInfoCount,const vk::BindSparseInfo * pBindInfo,vk::Fence fence,Dispatch const & d) const69973   VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const vk::BindSparseInfo* pBindInfo, vk::Fence fence, Dispatch const &d) const
69974   {
69975     return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo*>( pBindInfo ), static_cast<VkFence>( fence ) ) );
69976   }
69977 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
69978   template<typename Dispatch>
bindSparse(ArrayProxy<const vk::BindSparseInfo> bindInfo,vk::Fence fence,Dispatch const & d) const69979   VULKAN_HPP_INLINE ResultValueType<void>::type Queue::bindSparse( ArrayProxy<const vk::BindSparseInfo> bindInfo, vk::Fence fence, Dispatch const &d ) const
69980   {
69981     Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size() , reinterpret_cast<const VkBindSparseInfo*>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
69982     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::bindSparse" );
69983   }
69984 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69985 
69986 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
69987   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const69988   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d) const
69989   {
69990     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
69991   }
69992 #else
69993   template<typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const69994   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d ) const
69995   {
69996     d.vkQueueEndDebugUtilsLabelEXT( m_queue );
69997   }
69998 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
69999 
70000   template<typename Dispatch>
insertDebugUtilsLabelEXT(const vk::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const70001   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const vk::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
70002   {
70003     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
70004   }
70005 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
70006   template<typename Dispatch>
insertDebugUtilsLabelEXT(const DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const70007   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
70008   {
70009     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
70010   }
70011 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
70012 
70013   template<typename Dispatch>
presentKHR(const vk::PresentInfoKHR * pPresentInfo,Dispatch const & d) const70014   VULKAN_HPP_INLINE Result Queue::presentKHR( const vk::PresentInfoKHR* pPresentInfo, Dispatch const &d) const
70015   {
70016     return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( pPresentInfo ) ) );
70017   }
70018 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
70019   template<typename Dispatch>
presentKHR(const PresentInfoKHR & presentInfo,Dispatch const & d) const70020   VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d ) const
70021   {
70022     Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( &presentInfo ) ) );
70023     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
70024   }
70025 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
70026 
70027 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
70028   template<typename Dispatch>
setPerformanceConfigurationINTEL(vk::PerformanceConfigurationINTEL configuration,Dispatch const & d) const70029   VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d) const
70030   {
70031     return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
70032   }
70033 #else
70034   template<typename Dispatch>
setPerformanceConfigurationINTEL(vk::PerformanceConfigurationINTEL configuration,Dispatch const & d) const70035   VULKAN_HPP_INLINE ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( vk::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
70036   {
70037     Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
70038     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::setPerformanceConfigurationINTEL" );
70039   }
70040 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
70041 
70042   template<typename Dispatch>
submit(uint32_t submitCount,const vk::SubmitInfo * pSubmits,vk::Fence fence,Dispatch const & d) const70043   VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const vk::SubmitInfo* pSubmits, vk::Fence fence, Dispatch const &d) const
70044   {
70045     return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo*>( pSubmits ), static_cast<VkFence>( fence ) ) );
70046   }
70047 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
70048   template<typename Dispatch>
submit(ArrayProxy<const vk::SubmitInfo> submits,vk::Fence fence,Dispatch const & d) const70049   VULKAN_HPP_INLINE ResultValueType<void>::type Queue::submit( ArrayProxy<const vk::SubmitInfo> submits, vk::Fence fence, Dispatch const &d ) const
70050   {
70051     Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size() , reinterpret_cast<const VkSubmitInfo*>( submits.data() ), static_cast<VkFence>( fence ) ) );
70052     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::submit" );
70053   }
70054 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
70055 
70056 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
70057   template<typename Dispatch>
waitIdle(Dispatch const & d) const70058   VULKAN_HPP_INLINE Result Queue::waitIdle(Dispatch const &d) const
70059   {
70060     return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
70061   }
70062 #else
70063   template<typename Dispatch>
waitIdle(Dispatch const & d) const70064   VULKAN_HPP_INLINE ResultValueType<void>::type Queue::waitIdle(Dispatch const &d ) const
70065   {
70066     Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
70067     return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::waitIdle" );
70068   }
70069 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
70070 
70071 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70072   template <> struct isStructureChainValid<AndroidHardwareBufferPropertiesANDROID, AndroidHardwareBufferFormatPropertiesANDROID>{ enum { value = true }; };
70073 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70074 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70075   template <> struct isStructureChainValid<ImageFormatProperties2, AndroidHardwareBufferUsageANDROID>{ enum { value = true }; };
70076 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70077   template <> struct isStructureChainValid<BindBufferMemoryInfo, BindBufferMemoryDeviceGroupInfo>{ enum { value = true }; };
70078   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemoryDeviceGroupInfo>{ enum { value = true }; };
70079   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemorySwapchainInfoKHR>{ enum { value = true }; };
70080   template <> struct isStructureChainValid<BindImageMemoryInfo, BindImagePlaneMemoryInfo>{ enum { value = true }; };
70081   template <> struct isStructureChainValid<BufferCreateInfo, BufferDeviceAddressCreateInfoEXT>{ enum { value = true }; };
70082   template <> struct isStructureChainValid<CommandBufferInheritanceInfo, CommandBufferInheritanceConditionalRenderingInfoEXT>{ enum { value = true }; };
70083 #ifdef VK_USE_PLATFORM_WIN32_KHR
70084   template <> struct isStructureChainValid<SubmitInfo, D3D12FenceSubmitInfoKHR>{ enum { value = true }; };
70085 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70086   template <> struct isStructureChainValid<InstanceCreateInfo, DebugReportCallbackCreateInfoEXT>{ enum { value = true }; };
70087   template <> struct isStructureChainValid<InstanceCreateInfo, DebugUtilsMessengerCreateInfoEXT>{ enum { value = true }; };
70088   template <> struct isStructureChainValid<BufferCreateInfo, DedicatedAllocationBufferCreateInfoNV>{ enum { value = true }; };
70089   template <> struct isStructureChainValid<ImageCreateInfo, DedicatedAllocationImageCreateInfoNV>{ enum { value = true }; };
70090   template <> struct isStructureChainValid<MemoryAllocateInfo, DedicatedAllocationMemoryAllocateInfoNV>{ enum { value = true }; };
70091   template <> struct isStructureChainValid<DescriptorPoolCreateInfo, DescriptorPoolInlineUniformBlockCreateInfoEXT>{ enum { value = true }; };
70092   template <> struct isStructureChainValid<DescriptorSetLayoutCreateInfo, DescriptorSetLayoutBindingFlagsCreateInfoEXT>{ enum { value = true }; };
70093   template <> struct isStructureChainValid<DescriptorSetAllocateInfo, DescriptorSetVariableDescriptorCountAllocateInfoEXT>{ enum { value = true }; };
70094   template <> struct isStructureChainValid<DescriptorSetLayoutSupport, DescriptorSetVariableDescriptorCountLayoutSupportEXT>{ enum { value = true }; };
70095   template <> struct isStructureChainValid<BindSparseInfo, DeviceGroupBindSparseInfo>{ enum { value = true }; };
70096   template <> struct isStructureChainValid<CommandBufferBeginInfo, DeviceGroupCommandBufferBeginInfo>{ enum { value = true }; };
70097   template <> struct isStructureChainValid<DeviceCreateInfo, DeviceGroupDeviceCreateInfo>{ enum { value = true }; };
70098   template <> struct isStructureChainValid<PresentInfoKHR, DeviceGroupPresentInfoKHR>{ enum { value = true }; };
70099   template <> struct isStructureChainValid<RenderPassBeginInfo, DeviceGroupRenderPassBeginInfo>{ enum { value = true }; };
70100   template <> struct isStructureChainValid<SubmitInfo, DeviceGroupSubmitInfo>{ enum { value = true }; };
70101   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, DeviceGroupSwapchainCreateInfoKHR>{ enum { value = true }; };
70102   template <> struct isStructureChainValid<DeviceCreateInfo, DeviceMemoryOverallocationCreateInfoAMD>{ enum { value = true }; };
70103   template <> struct isStructureChainValid<DeviceQueueCreateInfo, DeviceQueueGlobalPriorityCreateInfoEXT>{ enum { value = true }; };
70104   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, DisplayNativeHdrSurfaceCapabilitiesAMD>{ enum { value = true }; };
70105   template <> struct isStructureChainValid<PresentInfoKHR, DisplayPresentInfoKHR>{ enum { value = true }; };
70106   template <> struct isStructureChainValid<FormatProperties2, DrmFormatModifierPropertiesListEXT>{ enum { value = true }; };
70107   template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceCreateInfo>{ enum { value = true }; };
70108 #ifdef VK_USE_PLATFORM_WIN32_KHR
70109   template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceWin32HandleInfoKHR>{ enum { value = true }; };
70110 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70111   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfo>{ enum { value = true }; };
70112   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfoNV>{ enum { value = true }; };
70113 #ifdef VK_USE_PLATFORM_WIN32_KHR
70114   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
70115 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70116 #ifdef VK_USE_PLATFORM_WIN32_KHR
70117   template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoNV>{ enum { value = true }; };
70118 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70119   template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreCreateInfo>{ enum { value = true }; };
70120 #ifdef VK_USE_PLATFORM_WIN32_KHR
70121   template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreWin32HandleInfoKHR>{ enum { value = true }; };
70122 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70123 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70124   template <> struct isStructureChainValid<ImageCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
70125   template <> struct isStructureChainValid<SamplerYcbcrConversionCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
70126 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70127   template <> struct isStructureChainValid<ImageFormatProperties2, ExternalImageFormatProperties>{ enum { value = true }; };
70128   template <> struct isStructureChainValid<BufferCreateInfo, ExternalMemoryBufferCreateInfo>{ enum { value = true }; };
70129   template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfo>{ enum { value = true }; };
70130   template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfoNV>{ enum { value = true }; };
70131   template <> struct isStructureChainValid<ImageFormatProperties2, FilterCubicImageViewImageFormatPropertiesEXT>{ enum { value = true }; };
70132   template <> struct isStructureChainValid<FramebufferCreateInfo, FramebufferAttachmentsCreateInfoKHR>{ enum { value = true }; };
70133   template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierExplicitCreateInfoEXT>{ enum { value = true }; };
70134   template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierListCreateInfoEXT>{ enum { value = true }; };
70135   template <> struct isStructureChainValid<ImageCreateInfo, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
70136   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
70137   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
70138   template <> struct isStructureChainValid<ImageMemoryRequirementsInfo2, ImagePlaneMemoryRequirementsInfo>{ enum { value = true }; };
70139   template <> struct isStructureChainValid<ImageCreateInfo, ImageStencilUsageCreateInfoEXT>{ enum { value = true }; };
70140   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageStencilUsageCreateInfoEXT>{ enum { value = true }; };
70141   template <> struct isStructureChainValid<ImageCreateInfo, ImageSwapchainCreateInfoKHR>{ enum { value = true }; };
70142   template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewASTCDecodeModeEXT>{ enum { value = true }; };
70143   template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewUsageCreateInfo>{ enum { value = true }; };
70144 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70145   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportAndroidHardwareBufferInfoANDROID>{ enum { value = true }; };
70146 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70147   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryFdInfoKHR>{ enum { value = true }; };
70148   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryHostPointerInfoEXT>{ enum { value = true }; };
70149 #ifdef VK_USE_PLATFORM_WIN32_KHR
70150   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
70151 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70152 #ifdef VK_USE_PLATFORM_WIN32_KHR
70153   template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoNV>{ enum { value = true }; };
70154 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70155   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryAllocateFlagsInfo>{ enum { value = true }; };
70156   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryDedicatedAllocateInfo>{ enum { value = true }; };
70157   template <> struct isStructureChainValid<MemoryRequirements2, MemoryDedicatedRequirements>{ enum { value = true }; };
70158   template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryPriorityAllocateInfoEXT>{ enum { value = true }; };
70159   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
70160   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
70161   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; };
70162   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; };
70163   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
70164   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
70165   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
70166   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
70167   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceBlendOperationAdvancedPropertiesEXT>{ enum { value = true }; };
70168   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
70169   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
70170   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCoherentMemoryFeaturesAMD>{ enum { value = true }; };
70171   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCoherentMemoryFeaturesAMD>{ enum { value = true }; };
70172   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
70173   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
70174   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
70175   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
70176   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceConservativeRasterizationPropertiesEXT>{ enum { value = true }; };
70177   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
70178   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
70179   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceCooperativeMatrixPropertiesNV>{ enum { value = true }; };
70180   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
70181   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
70182   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
70183   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
70184   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
70185   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
70186   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
70187   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
70188   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDepthStencilResolvePropertiesKHR>{ enum { value = true }; };
70189   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDescriptorIndexingFeaturesEXT>{ enum { value = true }; };
70190   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDescriptorIndexingFeaturesEXT>{ enum { value = true }; };
70191   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDescriptorIndexingPropertiesEXT>{ enum { value = true }; };
70192   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDiscardRectanglePropertiesEXT>{ enum { value = true }; };
70193   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDriverPropertiesKHR>{ enum { value = true }; };
70194   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
70195   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
70196   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceExternalImageFormatInfo>{ enum { value = true }; };
70197   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceExternalMemoryHostPropertiesEXT>{ enum { value = true }; };
70198   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFeatures2>{ enum { value = true }; };
70199   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFloatControlsPropertiesKHR>{ enum { value = true }; };
70200   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
70201   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
70202   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFragmentDensityMapPropertiesEXT>{ enum { value = true }; };
70203   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
70204   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
70205   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
70206   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
70207   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceHostQueryResetFeaturesEXT>{ enum { value = true }; };
70208   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceHostQueryResetFeaturesEXT>{ enum { value = true }; };
70209   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceIDProperties>{ enum { value = true }; };
70210   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageDrmFormatModifierInfoEXT>{ enum { value = true }; };
70211   template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageViewImageFormatInfoEXT>{ enum { value = true }; };
70212   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceImagelessFramebufferFeaturesKHR>{ enum { value = true }; };
70213   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceImagelessFramebufferFeaturesKHR>{ enum { value = true }; };
70214   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceIndexTypeUint8FeaturesEXT>{ enum { value = true }; };
70215   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceIndexTypeUint8FeaturesEXT>{ enum { value = true }; };
70216   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
70217   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
70218   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceInlineUniformBlockPropertiesEXT>{ enum { value = true }; };
70219   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceLineRasterizationFeaturesEXT>{ enum { value = true }; };
70220   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceLineRasterizationFeaturesEXT>{ enum { value = true }; };
70221   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceLineRasterizationPropertiesEXT>{ enum { value = true }; };
70222   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMaintenance3Properties>{ enum { value = true }; };
70223   template <> struct isStructureChainValid<PhysicalDeviceMemoryProperties2, PhysicalDeviceMemoryBudgetPropertiesEXT>{ enum { value = true }; };
70224   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
70225   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
70226   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
70227   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
70228   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMeshShaderPropertiesNV>{ enum { value = true }; };
70229   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
70230   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
70231   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>{ enum { value = true }; };
70232   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewProperties>{ enum { value = true }; };
70233   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePCIBusInfoPropertiesEXT>{ enum { value = true }; };
70234   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>{ enum { value = true }; };
70235   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>{ enum { value = true }; };
70236   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePointClippingProperties>{ enum { value = true }; };
70237   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
70238   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
70239   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceProtectedMemoryProperties>{ enum { value = true }; };
70240   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePushDescriptorPropertiesKHR>{ enum { value = true }; };
70241   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRayTracingPropertiesNV>{ enum { value = true }; };
70242   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
70243   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
70244   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSampleLocationsPropertiesEXT>{ enum { value = true }; };
70245   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSamplerFilterMinmaxPropertiesEXT>{ enum { value = true }; };
70246   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
70247   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
70248   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceScalarBlockLayoutFeaturesEXT>{ enum { value = true }; };
70249   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceScalarBlockLayoutFeaturesEXT>{ enum { value = true }; };
70250   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; };
70251   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; };
70252   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCoreProperties2AMD>{ enum { value = true }; };
70253   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCorePropertiesAMD>{ enum { value = true }; };
70254   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
70255   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
70256   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
70257   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
70258   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderFloat16Int8FeaturesKHR>{ enum { value = true }; };
70259   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderFloat16Int8FeaturesKHR>{ enum { value = true }; };
70260   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
70261   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
70262   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>{ enum { value = true }; };
70263   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>{ enum { value = true }; };
70264   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
70265   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
70266   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderSMBuiltinsPropertiesNV>{ enum { value = true }; };
70267   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
70268   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
70269   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShadingRateImagePropertiesNV>{ enum { value = true }; };
70270   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSubgroupProperties>{ enum { value = true }; };
70271   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSubgroupSizeControlFeaturesEXT>{ enum { value = true }; };
70272   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSubgroupSizeControlFeaturesEXT>{ enum { value = true }; };
70273   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSubgroupSizeControlPropertiesEXT>{ enum { value = true }; };
70274   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
70275   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
70276   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTexelBufferAlignmentPropertiesEXT>{ enum { value = true }; };
70277   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>{ enum { value = true }; };
70278   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>{ enum { value = true }; };
70279   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
70280   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
70281   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTransformFeedbackPropertiesEXT>{ enum { value = true }; };
70282   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>{ enum { value = true }; };
70283   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>{ enum { value = true }; };
70284   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
70285   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
70286   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
70287   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
70288   template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVertexAttributeDivisorPropertiesEXT>{ enum { value = true }; };
70289   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; };
70290   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; };
70291   template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
70292   template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
70293   template <> struct isStructureChainValid<PipelineColorBlendStateCreateInfo, PipelineColorBlendAdvancedStateCreateInfoEXT>{ enum { value = true }; };
70294   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineCompilerControlCreateInfoAMD>{ enum { value = true }; };
70295   template <> struct isStructureChainValid<ComputePipelineCreateInfo, PipelineCompilerControlCreateInfoAMD>{ enum { value = true }; };
70296   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageModulationStateCreateInfoNV>{ enum { value = true }; };
70297   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageReductionStateCreateInfoNV>{ enum { value = true }; };
70298   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageToColorStateCreateInfoNV>{ enum { value = true }; };
70299   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
70300   template <> struct isStructureChainValid<ComputePipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
70301   template <> struct isStructureChainValid<RayTracingPipelineCreateInfoNV, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
70302   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineDiscardRectangleStateCreateInfoEXT>{ enum { value = true }; };
70303   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationConservativeStateCreateInfoEXT>{ enum { value = true }; };
70304   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationDepthClipStateCreateInfoEXT>{ enum { value = true }; };
70305   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationLineStateCreateInfoEXT>{ enum { value = true }; };
70306   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateRasterizationOrderAMD>{ enum { value = true }; };
70307   template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateStreamCreateInfoEXT>{ enum { value = true }; };
70308   template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineRepresentativeFragmentTestStateCreateInfoNV>{ enum { value = true }; };
70309   template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineSampleLocationsStateCreateInfoEXT>{ enum { value = true }; };
70310   template <> struct isStructureChainValid<PipelineShaderStageCreateInfo, PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT>{ enum { value = true }; };
70311   template <> struct isStructureChainValid<PipelineTessellationStateCreateInfo, PipelineTessellationDomainOriginStateCreateInfo>{ enum { value = true }; };
70312   template <> struct isStructureChainValid<PipelineVertexInputStateCreateInfo, PipelineVertexInputDivisorStateCreateInfoEXT>{ enum { value = true }; };
70313   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportCoarseSampleOrderStateCreateInfoNV>{ enum { value = true }; };
70314   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportExclusiveScissorStateCreateInfoNV>{ enum { value = true }; };
70315   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportShadingRateImageStateCreateInfoNV>{ enum { value = true }; };
70316   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportSwizzleStateCreateInfoNV>{ enum { value = true }; };
70317   template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportWScalingStateCreateInfoNV>{ enum { value = true }; };
70318 #ifdef VK_USE_PLATFORM_GGP
70319   template <> struct isStructureChainValid<PresentInfoKHR, PresentFrameTokenGGP>{ enum { value = true }; };
70320 #endif /*VK_USE_PLATFORM_GGP*/
70321   template <> struct isStructureChainValid<PresentInfoKHR, PresentRegionsKHR>{ enum { value = true }; };
70322   template <> struct isStructureChainValid<PresentInfoKHR, PresentTimesInfoGOOGLE>{ enum { value = true }; };
70323   template <> struct isStructureChainValid<SubmitInfo, ProtectedSubmitInfo>{ enum { value = true }; };
70324   template <> struct isStructureChainValid<QueueFamilyProperties2, QueueFamilyCheckpointPropertiesNV>{ enum { value = true }; };
70325   template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassAttachmentBeginInfoKHR>{ enum { value = true }; };
70326   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassFragmentDensityMapCreateInfoEXT>{ enum { value = true }; };
70327   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassInputAttachmentAspectCreateInfo>{ enum { value = true }; };
70328   template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassMultiviewCreateInfo>{ enum { value = true }; };
70329   template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassSampleLocationsBeginInfoEXT>{ enum { value = true }; };
70330   template <> struct isStructureChainValid<ImageMemoryBarrier, SampleLocationsInfoEXT>{ enum { value = true }; };
70331   template <> struct isStructureChainValid<SamplerCreateInfo, SamplerReductionModeCreateInfoEXT>{ enum { value = true }; };
70332   template <> struct isStructureChainValid<ImageFormatProperties2, SamplerYcbcrConversionImageFormatProperties>{ enum { value = true }; };
70333   template <> struct isStructureChainValid<SamplerCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
70334   template <> struct isStructureChainValid<ImageViewCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
70335   template <> struct isStructureChainValid<ShaderModuleCreateInfo, ShaderModuleValidationCacheCreateInfoEXT>{ enum { value = true }; };
70336   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SharedPresentSurfaceCapabilitiesKHR>{ enum { value = true }; };
70337   template <> struct isStructureChainValid<SubpassDescription2KHR, SubpassDescriptionDepthStencilResolveKHR>{ enum { value = true }; };
70338 #ifdef VK_USE_PLATFORM_WIN32_KHR
70339   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceCapabilitiesFullScreenExclusiveEXT>{ enum { value = true }; };
70340 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70341 #ifdef VK_USE_PLATFORM_WIN32_KHR
70342   template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
70343   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
70344 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70345 #ifdef VK_USE_PLATFORM_WIN32_KHR
70346   template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
70347   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
70348 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70349   template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceProtectedCapabilitiesKHR>{ enum { value = true }; };
70350   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainCounterCreateInfoEXT>{ enum { value = true }; };
70351   template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainDisplayNativeHdrCreateInfoAMD>{ enum { value = true }; };
70352   template <> struct isStructureChainValid<ImageFormatProperties2, TextureLODGatherFormatPropertiesAMD>{ enum { value = true }; };
70353   template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFeaturesEXT>{ enum { value = true }; };
70354   template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFlagsEXT>{ enum { value = true }; };
70355 #ifdef VK_USE_PLATFORM_WIN32_KHR
70356   template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoKHR>{ enum { value = true }; };
70357 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70358 #ifdef VK_USE_PLATFORM_WIN32_KHR
70359   template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoNV>{ enum { value = true }; };
70360 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70361   template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetAccelerationStructureNV>{ enum { value = true }; };
70362   template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetInlineUniformBlockEXT>{ enum { value = true }; };
70363 
70364   class DispatchLoaderDynamic
70365   {
70366   public:
70367     PFN_vkCreateInstance vkCreateInstance = 0;
70368     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
70369     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
70370     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
70371     PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
70372     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
70373     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
70374     PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
70375     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
70376     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
70377     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
70378     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
70379     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
70380     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
70381     PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
70382     PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
70383     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
70384     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
70385     PFN_vkCmdBlitImage vkCmdBlitImage = 0;
70386     PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
70387     PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
70388     PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
70389     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
70390     PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
70391     PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
70392     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
70393     PFN_vkCmdCopyImage vkCmdCopyImage = 0;
70394     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
70395     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
70396     PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
70397     PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
70398     PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
70399     PFN_vkCmdDispatch vkCmdDispatch = 0;
70400     PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
70401     PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
70402     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
70403     PFN_vkCmdDraw vkCmdDraw = 0;
70404     PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
70405     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
70406     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
70407     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
70408     PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
70409     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
70410     PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
70411     PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
70412     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
70413     PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
70414     PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
70415     PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
70416     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
70417     PFN_vkCmdEndQuery vkCmdEndQuery = 0;
70418     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
70419     PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
70420     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
70421     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
70422     PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
70423     PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
70424     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
70425     PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
70426     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
70427     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
70428     PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX = 0;
70429     PFN_vkCmdPushConstants vkCmdPushConstants = 0;
70430     PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
70431     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
70432     PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX = 0;
70433     PFN_vkCmdResetEvent vkCmdResetEvent = 0;
70434     PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
70435     PFN_vkCmdResolveImage vkCmdResolveImage = 0;
70436     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
70437     PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
70438     PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
70439     PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
70440     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
70441     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
70442     PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
70443     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
70444     PFN_vkCmdSetEvent vkCmdSetEvent = 0;
70445     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
70446     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
70447     PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
70448     PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
70449     PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
70450     PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
70451     PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
70452     PFN_vkCmdSetScissor vkCmdSetScissor = 0;
70453     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
70454     PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
70455     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
70456     PFN_vkCmdSetViewport vkCmdSetViewport = 0;
70457     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
70458     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
70459     PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
70460     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
70461     PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
70462     PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
70463     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
70464     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
70465     PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
70466     PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
70467 #ifdef VK_USE_PLATFORM_WIN32_KHR
70468     PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
70469 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70470     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
70471     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
70472     PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
70473     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
70474     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
70475     PFN_vkAllocateMemory vkAllocateMemory = 0;
70476     PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
70477     PFN_vkBindBufferMemory vkBindBufferMemory = 0;
70478     PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
70479     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
70480     PFN_vkBindImageMemory vkBindImageMemory = 0;
70481     PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
70482     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
70483     PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
70484     PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
70485     PFN_vkCreateBuffer vkCreateBuffer = 0;
70486     PFN_vkCreateBufferView vkCreateBufferView = 0;
70487     PFN_vkCreateCommandPool vkCreateCommandPool = 0;
70488     PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
70489     PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
70490     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
70491     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
70492     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
70493     PFN_vkCreateEvent vkCreateEvent = 0;
70494     PFN_vkCreateFence vkCreateFence = 0;
70495     PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
70496     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
70497     PFN_vkCreateImage vkCreateImage = 0;
70498     PFN_vkCreateImageView vkCreateImageView = 0;
70499     PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX = 0;
70500     PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX = 0;
70501     PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
70502     PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
70503     PFN_vkCreateQueryPool vkCreateQueryPool = 0;
70504     PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
70505     PFN_vkCreateRenderPass vkCreateRenderPass = 0;
70506     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
70507     PFN_vkCreateSampler vkCreateSampler = 0;
70508     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
70509     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
70510     PFN_vkCreateSemaphore vkCreateSemaphore = 0;
70511     PFN_vkCreateShaderModule vkCreateShaderModule = 0;
70512     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
70513     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
70514     PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
70515     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
70516     PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
70517     PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
70518     PFN_vkDestroyBuffer vkDestroyBuffer = 0;
70519     PFN_vkDestroyBufferView vkDestroyBufferView = 0;
70520     PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
70521     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
70522     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
70523     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
70524     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
70525     PFN_vkDestroyDevice vkDestroyDevice = 0;
70526     PFN_vkDestroyEvent vkDestroyEvent = 0;
70527     PFN_vkDestroyFence vkDestroyFence = 0;
70528     PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
70529     PFN_vkDestroyImage vkDestroyImage = 0;
70530     PFN_vkDestroyImageView vkDestroyImageView = 0;
70531     PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX = 0;
70532     PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX = 0;
70533     PFN_vkDestroyPipeline vkDestroyPipeline = 0;
70534     PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
70535     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
70536     PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
70537     PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
70538     PFN_vkDestroySampler vkDestroySampler = 0;
70539     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
70540     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
70541     PFN_vkDestroySemaphore vkDestroySemaphore = 0;
70542     PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
70543     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
70544     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
70545     PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
70546     PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
70547     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
70548     PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
70549     PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
70550     PFN_vkFreeMemory vkFreeMemory = 0;
70551     PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
70552     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
70553 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70554     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
70555 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70556     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
70557     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
70558     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
70559     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
70560     PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
70561     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
70562     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
70563     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
70564     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
70565     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
70566 #ifdef VK_USE_PLATFORM_WIN32_KHR
70567     PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
70568 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70569     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
70570     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
70571     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
70572     PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
70573     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
70574     PFN_vkGetEventStatus vkGetEventStatus = 0;
70575     PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
70576     PFN_vkGetFenceStatus vkGetFenceStatus = 0;
70577 #ifdef VK_USE_PLATFORM_WIN32_KHR
70578     PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
70579 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70580     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
70581     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
70582     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
70583     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
70584     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
70585     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
70586     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
70587     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
70588     PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
70589 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70590     PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
70591 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70592     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
70593     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
70594     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
70595 #ifdef VK_USE_PLATFORM_WIN32_KHR
70596     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
70597 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70598 #ifdef VK_USE_PLATFORM_WIN32_KHR
70599     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
70600 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70601 #ifdef VK_USE_PLATFORM_WIN32_KHR
70602     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
70603 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70604     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
70605     PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
70606     PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
70607     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
70608     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
70609     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
70610     PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
70611     PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
70612     PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
70613     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
70614     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
70615 #ifdef VK_USE_PLATFORM_WIN32_KHR
70616     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
70617 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70618     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
70619     PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
70620     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
70621     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
70622     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
70623     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
70624 #ifdef VK_USE_PLATFORM_WIN32_KHR
70625     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
70626 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70627     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
70628 #ifdef VK_USE_PLATFORM_WIN32_KHR
70629     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
70630 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70631     PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
70632     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
70633     PFN_vkMapMemory vkMapMemory = 0;
70634     PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
70635     PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
70636     PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
70637     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
70638     PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX = 0;
70639 #ifdef VK_USE_PLATFORM_WIN32_KHR
70640     PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
70641 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70642     PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
70643     PFN_vkResetCommandPool vkResetCommandPool = 0;
70644     PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
70645     PFN_vkResetEvent vkResetEvent = 0;
70646     PFN_vkResetFences vkResetFences = 0;
70647     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
70648     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
70649     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
70650     PFN_vkSetEvent vkSetEvent = 0;
70651     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
70652     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
70653     PFN_vkTrimCommandPool vkTrimCommandPool = 0;
70654     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
70655     PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
70656     PFN_vkUnmapMemory vkUnmapMemory = 0;
70657     PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX = 0;
70658     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
70659     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
70660     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
70661     PFN_vkWaitForFences vkWaitForFences = 0;
70662 #ifdef VK_USE_PLATFORM_ANDROID_KHR
70663     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
70664 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
70665     PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
70666     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
70667     PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
70668     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
70669 #ifdef VK_USE_PLATFORM_IOS_MVK
70670     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
70671 #endif /*VK_USE_PLATFORM_IOS_MVK*/
70672 #ifdef VK_USE_PLATFORM_FUCHSIA
70673     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
70674 #endif /*VK_USE_PLATFORM_FUCHSIA*/
70675 #ifdef VK_USE_PLATFORM_MACOS_MVK
70676     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
70677 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
70678 #ifdef VK_USE_PLATFORM_METAL_EXT
70679     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
70680 #endif /*VK_USE_PLATFORM_METAL_EXT*/
70681 #ifdef VK_USE_PLATFORM_GGP
70682     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
70683 #endif /*VK_USE_PLATFORM_GGP*/
70684 #ifdef VK_USE_PLATFORM_VI_NN
70685     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
70686 #endif /*VK_USE_PLATFORM_VI_NN*/
70687 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
70688     PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
70689 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
70690 #ifdef VK_USE_PLATFORM_WIN32_KHR
70691     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
70692 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70693 #ifdef VK_USE_PLATFORM_XCB_KHR
70694     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
70695 #endif /*VK_USE_PLATFORM_XCB_KHR*/
70696 #ifdef VK_USE_PLATFORM_XLIB_KHR
70697     PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
70698 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
70699     PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
70700     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
70701     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
70702     PFN_vkDestroyInstance vkDestroyInstance = 0;
70703     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
70704     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
70705     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
70706     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
70707     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
70708     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
70709 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
70710     PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
70711 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
70712     PFN_vkCreateDevice vkCreateDevice = 0;
70713     PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
70714     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
70715     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
70716     PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
70717     PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
70718     PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
70719     PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
70720     PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
70721     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
70722     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
70723     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
70724     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
70725     PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
70726     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
70727     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
70728     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
70729     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
70730     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
70731     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
70732     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
70733     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
70734     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
70735     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
70736     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
70737     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
70738     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
70739     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
70740     PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 0;
70741     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
70742     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
70743     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
70744     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
70745     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
70746     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
70747     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
70748     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
70749     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
70750     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
70751     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
70752     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
70753     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
70754     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
70755     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
70756     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
70757     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
70758     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
70759     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
70760     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
70761     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
70762     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
70763     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
70764 #ifdef VK_USE_PLATFORM_WIN32_KHR
70765     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
70766 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70767     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
70768     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
70769 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
70770     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
70771 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
70772 #ifdef VK_USE_PLATFORM_WIN32_KHR
70773     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
70774 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70775 #ifdef VK_USE_PLATFORM_XCB_KHR
70776     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
70777 #endif /*VK_USE_PLATFORM_XCB_KHR*/
70778 #ifdef VK_USE_PLATFORM_XLIB_KHR
70779     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
70780 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
70781 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
70782     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
70783 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
70784     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
70785     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
70786     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
70787     PFN_vkQueueBindSparse vkQueueBindSparse = 0;
70788     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
70789     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
70790     PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
70791     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
70792     PFN_vkQueueSubmit vkQueueSubmit = 0;
70793     PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
70794 
70795   public:
70796     DispatchLoaderDynamic() = default;
70797 
70798 #if !defined(VK_NO_PROTOTYPES)
70799     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
DispatchLoaderDynamic(vk::Instance const & instance,vk::Device const & device={})70800     DispatchLoaderDynamic(vk::Instance const& instance, vk::Device const& device = {})
70801     {
70802       init(instance, device);
70803     }
70804 
70805     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
init(vk::Instance const & instance,vk::Device const & device={})70806     void init(vk::Instance const& instance, vk::Device const& device = {})
70807     {
70808       init(static_cast<VkInstance>(instance), ::vkGetInstanceProcAddr, static_cast<VkDevice>(device), device ? ::vkGetDeviceProcAddr : nullptr);
70809     }
70810 #endif // !defined(VK_NO_PROTOTYPES)
70811 
70812     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)70813     DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr )
70814     {
70815       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
70816     }
70817 
70818     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device=VK_NULL_HANDLE,PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)70819     void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr )
70820     {
70821       VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
70822       VULKAN_HPP_ASSERT(!!device == !!getDeviceProcAddr);
70823       vkGetInstanceProcAddr = getInstanceProcAddr;
70824       vkGetDeviceProcAddr = getDeviceProcAddr ? getDeviceProcAddr : PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr") );
70825       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( instance, "vkCreateInstance" ) );
70826       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceExtensionProperties" ) );
70827       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceLayerProperties" ) );
70828       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceVersion" ) );
70829       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
70830       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
70831       vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
70832       vkCmdBeginQuery = PFN_vkCmdBeginQuery( device ? vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
70833       vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
70834       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( device ? vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
70835       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
70836       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
70837       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
70838       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
70839       vkCmdBindPipeline = PFN_vkCmdBindPipeline( device ? vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) : vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
70840       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( device ? vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) : vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
70841       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
70842       vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( device ? vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) : vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
70843       vkCmdBlitImage = PFN_vkCmdBlitImage( device ? vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) : vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
70844       vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
70845       vkCmdClearAttachments = PFN_vkCmdClearAttachments( device ? vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) : vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
70846       vkCmdClearColorImage = PFN_vkCmdClearColorImage( device ? vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) : vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
70847       vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( device ? vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) : vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
70848       vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
70849       vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
70850       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( device ? vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
70851       vkCmdCopyImage = PFN_vkCmdCopyImage( device ? vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
70852       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
70853       vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( device ? vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
70854       vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
70855       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
70856       vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
70857       vkCmdDispatch = PFN_vkCmdDispatch( device ? vkGetDeviceProcAddr( device, "vkCmdDispatch" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
70858       vkCmdDispatchBase = PFN_vkCmdDispatchBase( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
70859       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
70860       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
70861       vkCmdDraw = PFN_vkCmdDraw( device ? vkGetDeviceProcAddr( device, "vkCmdDraw" ) : vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
70862       vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
70863       vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
70864       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
70865       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
70866       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
70867       vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
70868       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
70869       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
70870       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
70871       vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
70872       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
70873       vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
70874       vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
70875       vkCmdEndQuery = PFN_vkCmdEndQuery( device ? vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) : vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
70876       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
70877       vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( device ? vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
70878       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
70879       vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
70880       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( device ? vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) : vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
70881       vkCmdFillBuffer = PFN_vkCmdFillBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
70882       vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
70883       vkCmdNextSubpass = PFN_vkCmdNextSubpass( device ? vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) : vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
70884       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
70885       vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( device ? vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) : vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
70886       vkCmdProcessCommandsNVX = PFN_vkCmdProcessCommandsNVX( device ? vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ) : vkGetInstanceProcAddr( instance, "vkCmdProcessCommandsNVX" ) );
70887       vkCmdPushConstants = PFN_vkCmdPushConstants( device ? vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) : vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
70888       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( device ? vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
70889       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
70890       vkCmdReserveSpaceForCommandsNVX = PFN_vkCmdReserveSpaceForCommandsNVX( device ? vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ) : vkGetInstanceProcAddr( instance, "vkCmdReserveSpaceForCommandsNVX" ) );
70891       vkCmdResetEvent = PFN_vkCmdResetEvent( device ? vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) : vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
70892       vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( device ? vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) : vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
70893       vkCmdResolveImage = PFN_vkCmdResolveImage( device ? vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) : vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
70894       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( device ? vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) : vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
70895       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
70896       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
70897       vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( device ? vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
70898       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( device ? vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
70899       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
70900       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( device ? vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
70901       vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( device ? vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
70902       vkCmdSetEvent = PFN_vkCmdSetEvent( device ? vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) : vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
70903       vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
70904       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( device ? vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
70905       vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( device ? vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) : vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
70906       vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
70907       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
70908       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
70909       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( device ? vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
70910       vkCmdSetScissor = PFN_vkCmdSetScissor( device ? vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) : vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
70911       vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
70912       vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
70913       vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
70914       vkCmdSetViewport = PFN_vkCmdSetViewport( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
70915       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
70916       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
70917       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( device ? vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) : vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
70918       vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
70919       vkCmdWaitEvents = PFN_vkCmdWaitEvents( device ? vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) : vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
70920       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( device ? vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
70921       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( device ? vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
70922       vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( device ? vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
70923       vkEndCommandBuffer = PFN_vkEndCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
70924       vkResetCommandBuffer = PFN_vkResetCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
70925 #ifdef VK_USE_PLATFORM_WIN32_KHR
70926       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( device ? vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) : vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
70927 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
70928       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( device ? vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) : vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
70929       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( device ? vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) : vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
70930       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
70931       vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( device ? vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) : vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
70932       vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
70933       vkAllocateMemory = PFN_vkAllocateMemory( device ? vkGetDeviceProcAddr( device, "vkAllocateMemory" ) : vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
70934       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( device ? vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) : vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
70935       vkBindBufferMemory = PFN_vkBindBufferMemory( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
70936       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
70937       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
70938       vkBindImageMemory = PFN_vkBindImageMemory( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
70939       vkBindImageMemory2 = PFN_vkBindImageMemory2( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
70940       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
70941       vkCompileDeferredNV = PFN_vkCompileDeferredNV( device ? vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) : vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
70942       vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
70943       vkCreateBuffer = PFN_vkCreateBuffer( device ? vkGetDeviceProcAddr( device, "vkCreateBuffer" ) : vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
70944       vkCreateBufferView = PFN_vkCreateBufferView( device ? vkGetDeviceProcAddr( device, "vkCreateBufferView" ) : vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
70945       vkCreateCommandPool = PFN_vkCreateCommandPool( device ? vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) : vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
70946       vkCreateComputePipelines = PFN_vkCreateComputePipelines( device ? vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) : vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
70947       vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
70948       vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
70949       vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
70950       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
70951       vkCreateEvent = PFN_vkCreateEvent( device ? vkGetDeviceProcAddr( device, "vkCreateEvent" ) : vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
70952       vkCreateFence = PFN_vkCreateFence( device ? vkGetDeviceProcAddr( device, "vkCreateFence" ) : vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
70953       vkCreateFramebuffer = PFN_vkCreateFramebuffer( device ? vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) : vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
70954       vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( device ? vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) : vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
70955       vkCreateImage = PFN_vkCreateImage( device ? vkGetDeviceProcAddr( device, "vkCreateImage" ) : vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
70956       vkCreateImageView = PFN_vkCreateImageView( device ? vkGetDeviceProcAddr( device, "vkCreateImageView" ) : vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
70957       vkCreateIndirectCommandsLayoutNVX = PFN_vkCreateIndirectCommandsLayoutNVX( device ? vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ) : vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNVX" ) );
70958       vkCreateObjectTableNVX = PFN_vkCreateObjectTableNVX( device ? vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ) : vkGetInstanceProcAddr( instance, "vkCreateObjectTableNVX" ) );
70959       vkCreatePipelineCache = PFN_vkCreatePipelineCache( device ? vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) : vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
70960       vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( device ? vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) : vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
70961       vkCreateQueryPool = PFN_vkCreateQueryPool( device ? vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) : vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
70962       vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( device ? vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) : vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
70963       vkCreateRenderPass = PFN_vkCreateRenderPass( device ? vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
70964       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
70965       vkCreateSampler = PFN_vkCreateSampler( device ? vkGetDeviceProcAddr( device, "vkCreateSampler" ) : vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
70966       vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( device ? vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) : vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
70967       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
70968       vkCreateSemaphore = PFN_vkCreateSemaphore( device ? vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) : vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
70969       vkCreateShaderModule = PFN_vkCreateShaderModule( device ? vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) : vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
70970       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
70971       vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
70972       vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( device ? vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) : vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
70973       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( device ? vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) : vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
70974       vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( device ? vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) : vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
70975       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
70976       vkDestroyBuffer = PFN_vkDestroyBuffer( device ? vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) : vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
70977       vkDestroyBufferView = PFN_vkDestroyBufferView( device ? vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) : vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
70978       vkDestroyCommandPool = PFN_vkDestroyCommandPool( device ? vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
70979       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
70980       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
70981       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
70982       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
70983       vkDestroyDevice = PFN_vkDestroyDevice( device ? vkGetDeviceProcAddr( device, "vkDestroyDevice" ) : vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
70984       vkDestroyEvent = PFN_vkDestroyEvent( device ? vkGetDeviceProcAddr( device, "vkDestroyEvent" ) : vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
70985       vkDestroyFence = PFN_vkDestroyFence( device ? vkGetDeviceProcAddr( device, "vkDestroyFence" ) : vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
70986       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( device ? vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) : vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
70987       vkDestroyImage = PFN_vkDestroyImage( device ? vkGetDeviceProcAddr( device, "vkDestroyImage" ) : vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
70988       vkDestroyImageView = PFN_vkDestroyImageView( device ? vkGetDeviceProcAddr( device, "vkDestroyImageView" ) : vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
70989       vkDestroyIndirectCommandsLayoutNVX = PFN_vkDestroyIndirectCommandsLayoutNVX( device ? vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ) : vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNVX" ) );
70990       vkDestroyObjectTableNVX = PFN_vkDestroyObjectTableNVX( device ? vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ) : vkGetInstanceProcAddr( instance, "vkDestroyObjectTableNVX" ) );
70991       vkDestroyPipeline = PFN_vkDestroyPipeline( device ? vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
70992       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( device ? vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
70993       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( device ? vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
70994       vkDestroyQueryPool = PFN_vkDestroyQueryPool( device ? vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
70995       vkDestroyRenderPass = PFN_vkDestroyRenderPass( device ? vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) : vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
70996       vkDestroySampler = PFN_vkDestroySampler( device ? vkGetDeviceProcAddr( device, "vkDestroySampler" ) : vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
70997       vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( device ? vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) : vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
70998       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( device ? vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
70999       vkDestroySemaphore = PFN_vkDestroySemaphore( device ? vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) : vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
71000       vkDestroyShaderModule = PFN_vkDestroyShaderModule( device ? vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) : vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
71001       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( device ? vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
71002       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( device ? vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) : vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
71003       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( device ? vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) : vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
71004       vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( device ? vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) : vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
71005       vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( device ? vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) : vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
71006       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( device ? vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) : vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
71007       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
71008       vkFreeMemory = PFN_vkFreeMemory( device ? vkGetDeviceProcAddr( device, "vkFreeMemory" ) : vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
71009       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( device ? vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) : vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
71010       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( device ? vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) : vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
71011 #ifdef VK_USE_PLATFORM_ANDROID_KHR
71012       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( device ? vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) : vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
71013 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
71014       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( device ? vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) : vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
71015       vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
71016       vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
71017       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
71018       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( device ? vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) : vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
71019       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( device ? vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) : vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
71020       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( device ? vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
71021       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
71022       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
71023       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
71024 #ifdef VK_USE_PLATFORM_WIN32_KHR
71025       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
71026 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71027       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
71028       vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( device ? vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
71029       vkGetDeviceQueue = PFN_vkGetDeviceQueue( device ? vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
71030       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( device ? vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
71031       vkGetEventStatus = PFN_vkGetEventStatus( device ? vkGetDeviceProcAddr( device, "vkGetEventStatus" ) : vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
71032       vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
71033       vkGetFenceStatus = PFN_vkGetFenceStatus( device ? vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) : vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
71034 #ifdef VK_USE_PLATFORM_WIN32_KHR
71035       vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
71036 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71037       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( device ? vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) : vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
71038       vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
71039       vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
71040       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
71041       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
71042       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
71043       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
71044       vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( device ? vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) : vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
71045       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( device ? vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) : vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
71046 #ifdef VK_USE_PLATFORM_ANDROID_KHR
71047       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( device ? vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
71048 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
71049       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
71050       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
71051       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( device ? vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
71052 #ifdef VK_USE_PLATFORM_WIN32_KHR
71053       vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
71054 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71055 #ifdef VK_USE_PLATFORM_WIN32_KHR
71056       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
71057 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71058 #ifdef VK_USE_PLATFORM_WIN32_KHR
71059       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
71060 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71061       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( device ? vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) : vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
71062       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( device ? vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) : vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
71063       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( device ? vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) : vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
71064       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( device ? vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) : vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
71065       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
71066       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( device ? vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) : vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
71067       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( device ? vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) : vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
71068       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( device ? vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) : vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
71069       vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( device ? vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) : vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
71070       vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( device ? vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) : vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
71071       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
71072 #ifdef VK_USE_PLATFORM_WIN32_KHR
71073       vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
71074 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71075       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( device ? vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) : vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
71076       vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
71077       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
71078       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
71079       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( device ? vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) : vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
71080       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( device ? vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) : vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
71081 #ifdef VK_USE_PLATFORM_WIN32_KHR
71082       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
71083 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71084       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( device ? vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) : vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
71085 #ifdef VK_USE_PLATFORM_WIN32_KHR
71086       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
71087 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71088       vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( device ? vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) : vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
71089       vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( device ? vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) : vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
71090       vkMapMemory = PFN_vkMapMemory( device ? vkGetDeviceProcAddr( device, "vkMapMemory" ) : vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
71091       vkMergePipelineCaches = PFN_vkMergePipelineCaches( device ? vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) : vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
71092       vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( device ? vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) : vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
71093       vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( device ? vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) : vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
71094       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( device ? vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) : vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
71095       vkRegisterObjectsNVX = PFN_vkRegisterObjectsNVX( device ? vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ) : vkGetInstanceProcAddr( instance, "vkRegisterObjectsNVX" ) );
71096 #ifdef VK_USE_PLATFORM_WIN32_KHR
71097       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( device ? vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) : vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
71098 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71099       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
71100       vkResetCommandPool = PFN_vkResetCommandPool( device ? vkGetDeviceProcAddr( device, "vkResetCommandPool" ) : vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
71101       vkResetDescriptorPool = PFN_vkResetDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
71102       vkResetEvent = PFN_vkResetEvent( device ? vkGetDeviceProcAddr( device, "vkResetEvent" ) : vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
71103       vkResetFences = PFN_vkResetFences( device ? vkGetDeviceProcAddr( device, "vkResetFences" ) : vkGetInstanceProcAddr( instance, "vkResetFences" ) );
71104       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( device ? vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) : vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
71105       vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( device ? vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) : vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
71106       vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( device ? vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) : vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
71107       vkSetEvent = PFN_vkSetEvent( device ? vkGetDeviceProcAddr( device, "vkSetEvent" ) : vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
71108       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( device ? vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) : vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
71109       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( device ? vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) : vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
71110       vkTrimCommandPool = PFN_vkTrimCommandPool( device ? vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) : vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
71111       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( device ? vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) : vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
71112       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( device ? vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) : vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
71113       vkUnmapMemory = PFN_vkUnmapMemory( device ? vkGetDeviceProcAddr( device, "vkUnmapMemory" ) : vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
71114       vkUnregisterObjectsNVX = PFN_vkUnregisterObjectsNVX( device ? vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ) : vkGetInstanceProcAddr( instance, "vkUnregisterObjectsNVX" ) );
71115       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
71116       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
71117       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
71118       vkWaitForFences = PFN_vkWaitForFences( device ? vkGetDeviceProcAddr( device, "vkWaitForFences" ) : vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
71119 #ifdef VK_USE_PLATFORM_ANDROID_KHR
71120       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
71121 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
71122       vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
71123       vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
71124       vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
71125       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
71126 #ifdef VK_USE_PLATFORM_IOS_MVK
71127       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
71128 #endif /*VK_USE_PLATFORM_IOS_MVK*/
71129 #ifdef VK_USE_PLATFORM_FUCHSIA
71130       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
71131 #endif /*VK_USE_PLATFORM_FUCHSIA*/
71132 #ifdef VK_USE_PLATFORM_MACOS_MVK
71133       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
71134 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
71135 #ifdef VK_USE_PLATFORM_METAL_EXT
71136       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
71137 #endif /*VK_USE_PLATFORM_METAL_EXT*/
71138 #ifdef VK_USE_PLATFORM_GGP
71139       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
71140 #endif /*VK_USE_PLATFORM_GGP*/
71141 #ifdef VK_USE_PLATFORM_VI_NN
71142       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
71143 #endif /*VK_USE_PLATFORM_VI_NN*/
71144 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
71145       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
71146 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
71147 #ifdef VK_USE_PLATFORM_WIN32_KHR
71148       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
71149 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71150 #ifdef VK_USE_PLATFORM_XCB_KHR
71151       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
71152 #endif /*VK_USE_PLATFORM_XCB_KHR*/
71153 #ifdef VK_USE_PLATFORM_XLIB_KHR
71154       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
71155 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
71156       vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
71157       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
71158       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
71159       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
71160       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
71161       vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
71162       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
71163       vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
71164       vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
71165 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
71166       vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
71167 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
71168       vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
71169       vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
71170       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
71171       vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
71172       vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
71173       vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
71174       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
71175       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
71176       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
71177       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
71178       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
71179       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
71180       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
71181       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
71182       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
71183       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
71184       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
71185       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
71186       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
71187       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
71188       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
71189       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
71190       vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
71191       vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
71192       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
71193       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
71194       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
71195       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
71196       vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" ) );
71197       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
71198       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
71199       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
71200       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
71201       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
71202       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
71203       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
71204       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
71205       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
71206       vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
71207       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
71208       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
71209       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
71210       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
71211       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
71212       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
71213       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
71214       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
71215       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
71216       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
71217       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
71218       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
71219       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
71220 #ifdef VK_USE_PLATFORM_WIN32_KHR
71221       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
71222 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71223       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
71224       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
71225 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
71226       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
71227 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
71228 #ifdef VK_USE_PLATFORM_WIN32_KHR
71229       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
71230 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71231 #ifdef VK_USE_PLATFORM_XCB_KHR
71232       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
71233 #endif /*VK_USE_PLATFORM_XCB_KHR*/
71234 #ifdef VK_USE_PLATFORM_XLIB_KHR
71235       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
71236 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
71237 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
71238       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
71239 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
71240       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
71241       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( device ? vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) : vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
71242       vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
71243       vkQueueBindSparse = PFN_vkQueueBindSparse( device ? vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) : vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
71244       vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
71245       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
71246       vkQueuePresentKHR = PFN_vkQueuePresentKHR( device ? vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) : vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
71247       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
71248       vkQueueSubmit = PFN_vkQueueSubmit( device ? vkGetDeviceProcAddr( device, "vkQueueSubmit" ) : vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
71249       vkQueueWaitIdle = PFN_vkQueueWaitIdle( device ? vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) : vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
71250     }
71251   };
71252 } // namespace VULKAN_HPP_NAMESPACE
71253 #endif
71254